を使用してHaskellでは、バイナリツリー上で次トラバースを行います機能を実装する方法に慣れて、私の試みは次のとおりです。 何か助けていただければ幸いです。 エラーメッセージ: Couldn't match expected type ‘[a]’ with actual type ‘[a] -> [a]’
• In the first argument of ‘foldT’, namely
私は次のようにHaskellでのバイナリツリーの定義を持っています私は単純にすべての値を合計するこの関数を作ることができます: しかし、これは動作しません、私は私の人生のためにすることはできません理由を見つけてください。 私は取得していますエラーメッセージの有用な部分は次のとおりです。エラーはあなたがいる場合タイプ (x -> u -> u -> u)
をパラメータとして (+) :: (Nu
は、私は一種[*]の、種類のリストがあるとします。 let Ts = '[Int, Bool, Char]
私はタプルのチェーンにこれを変換したい: type family Tupled (ts :: [*]) z :: *
type instance Tupled (t ': ts) z = (t, Tupled ts z)
type instance Tupled '[] z = z
foldMのFoldableをcatsで理解しようとしています。リスト内の数字を合計する必要があるとします。実行中の合計が正で、そうでないときに中断する必要があるとします。 val sumUp: (Int, Int) => Option[Int] = (x, y) => {
println(s"x = $x, y = $y")
val sum = x + y
if (