0

次のようなタイプがあります。

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

TerminalStitch の値は 1 つだけです。したがって、モジュールの最上位レベルでこの値を次のように定義できればと思います。

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

しかし、うまくいかないようです。代わりに何をすべきですか?

4

1 に答える 1

2

ここでの具体的な問題はタイプミスです

terminalSticth = TerminalStitch
--         ^ swapped the letters

また、タイプ署名で、タイプをステッチする必要があります

terminalStitch :: Stitch a

ここで何を達成しようとしていますか? Haskell では、値だけで「ID によって」物事を比較することはできません。したがって、使用することterminalStitchは、単に使用することとまったく同じですTerminalStitch

于 2013-11-01T02:07:55.807 に答える