私はHaskellで初めてです。トピックを学びます。ここHaskellの書籍「再帰的なデータ構造」Haskellで `print 'を使用しているため、(Show a0)のインスタンスがありません
は私のコード
data List a = Empty | Cons a (List a) deriving (Show, Read, Eq, Ord)
main = do
print $ Empty
print $ 5 `Cons` Empty
print $ 4 (Cons 5 Empty)
print $ 3 `Cons` (4 `Cons` (5 `Cons` Empty))
、ここでは私が
No instance for (Show a0) arising from a use of `print'
The type variable `a0' is ambiguous
Possible fix: add a type signature that fixes these type variable(s)
Note: there are several potential instances:
instance Show a => Show (List a)
第3の 'print'は問題を引き起こしていませんか?ここでは '4'と' Con 5 Empy 'を提供するので、'(4)に '(Cons 5 Empty)'を適用しますか? –
ここに投稿したコードを実行しようとすると、別のエラーメッセージが表示されます。これはtypoがあるからです:do-blockの3行目に、 '$ 4' Cons'(5 'Cons' Empty)' 'を書くことを意味していました。 – duplode