私は次のようにHaskellでのバイナリツリーの定義を持っています私は単純にすべての値を合計するこの関数を作ることができます:バイナリツリーの折りたたみ機能は
しかし、これは動作しません、私は私の人生のためにすることはできません理由を見つけてください。 私は取得していますエラーメッセージの有用な部分は次のとおりです。エラーはあなたがいる場合タイプ
(x -> u -> u -> u)
をパラメータとして
(+) :: (Num a) => a -> a -> a
を使用しようとしてからおよそ来
Couldn't match type `a` with `a -> a'
`a' is a rigid type variable bound by the type signature for:
sumBFold :: forall a. Num a => BTree a -> a
Expected type: (a -> a) -> a -> a -> a
Actual type: (a -> a) -> (a -> a) -> a -> a
In the first argument of folB namely `(+)`
'foldB'に渡す必要がある関数は3つのパラメータをとりますが、'(+) 'は2つだけです。 – Lee