我写了一个函数,该函数将所有元素从给定的清单:List.fold_left OCaml中
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
?