今日は質問を投稿しましたが、誰かが助けてくれましたが、彼のコードは機能していません。これは私が彼のコードを実行すると、私はエラーを取得ポストlink to the post少しのバグを修正するための助けが必要
へのリンクです:「 `入力にエラーを解析」」
ザ・"。 " "\ t"がエラーを引き起こした後。ハスケルで新しいですので、なぜそれが原因でエラーが発生しているのか分かりません。
これを解決するにはヘルプが必要です。
おかげ
UPDATE
私はコードを読み込むとき、私はエラーを取得します。これはエラーです:
Couldn't match expected type `a -> Bool'
against inferred type `[Bool]'
In the first argument of `any', namely
`(map (\ t -> contains t b) c)'
In the second argument of `(||)', namely
`any (map (\ t -> contains t b) c)'
In the expression: a == b || any (map (\ t -> contains t b) c)
はそれを修正する際に助けが必要です。
おかげ
UPDATE
私は変更を行った後にコードを実行する場合:
data Tree a = Leaf a | Branch a [(Tree a)] deriving (Show)
contains :: Tree a -> a -> Bool
contains (Leaf a) b = a == b
contains (Branch a c) b = a == b or (map (\ t -> contains t b) c)
を、これは私が今取得エラーです:
Occurs check: cannot construct the infinite type:
a = ([Bool] -> Bool) -> [Bool] -> a
When generalising the type(s) for `contains'
UPDATE 3
これは私のコードですが、すべての変更を行ってもまだエラーが表示されます。私は理解していません:
data Tree a = Leaf a | Branch a [(Tree a)] deriving (Show)
contains :: Eq a => Tree a -> a -> Bool
contains (Leaf a) b = a == b
contains (Branch a c) b = a == b || (map (\t -> contains t b) c)
ブールは私のシステムでは動作しませんので、ブールを使用する必要があります。今これは私が得るエラーです:
Couldn't match expected type `Bool' against inferred type `[Bool]'
In the second argument of `(||)', namely
`(map (\ t -> contains t b) c)'
In the expression: a == b || (map (\ t -> contains t b) c)
In the definition of `contains':
contains (Branch a c) b = a == b || (map (\ t -> contains t b) c)
上記のコードを実行してもよろしいですか?あるいは、どこかで何かを逃しているかもしれません。 お時間をいただき、ありがとうございます。それは有り難いです。
おかげ
これはtypですが、methinks( '\ t。(...)'は無効です。Haskell、 '\ t - >(...)'は - 省略記号を有効なものに置き換えます。コース)、彼はすでにそれを修正しました。 – delnan