我寫了一個函數,該函數將所有元素從給定的清單: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
?