指定されたリストからすべての要素を追加する関数を作成しました。
let rec add = function []->0 | h::t->h+add(t);;
今、同じ関数を書きたいのですが、を使用してList.fold_left
いますが、いくつかの変更を試みましたが、まだエラーがあります。最初にこれを試しました:
let rec add = function []->0 | h::t-> add List.fold_left((fun h t-> h+t) h t);;
しかし、エラーが発生し、List.fold_left が int 値を返すため、再帰は不要であることに気付きました。だから私は次のように変更しました:
let add = function []->0 | h::t -> List.fold_left ( fun h t-> h+t h t);;
しかし、私はまだ間違った型に関するエラーを受け取ります:
しかし、私はそれを修正する方法がわかりません.誰かがこの例でError: This expression has type int -> 'a -> 'b
but an expression was expected of type 'a
私の使い方を説明できますか?List.fold_left