0

我有一个类型如下:

data Stitch mark = OverStitch mark (Stitch mark) | TokenStitch | TerminalStitch

TerminalStitch 只能有一个值。所以我希望我可以在模块的顶层定义这个值,如下所示:

terminalStitch :: Stitch
terminalStitch = TerminalStitch -- <--- value = constructor()

但这似乎不起作用。我应该怎么做?

4

1 回答 1

2

那么这里的具体问题是一个错字

terminalSticth = TerminalStitch
--         ^ swapped the letters

同样在您的类型签名中,您需要提供缝合类型

terminalStitch :: Stitch a

你想在这里达到什么目的?在 Haskell 中,您不能仅按值“按身份”比较事物。所以 using和 usingterminalStitch完全一样TerminalStitch

于 2013-11-01T02:07:55.807 回答