在管給出的骨架,它使用List.fold_left得到一個OCaml的功能填寫 val pipe : ('a -> 'a) list -> ('a -> 'a)
這樣pipe [f1;...;fn]
(其中f1,...,fn
的功能!)返回一個函數f
這樣,對於任何x
,我們有f x
返回結果fn(...(f2(f1 x)))
。ocaml的函數調用List.fold_left
同樣,您的任務是爲摺疊功能f
和基本情況填寫適當的值。 一旦你已經實現的功能,你應該在OCaml的提示得到以下行爲:
# pipe [] 3;;
- : int = 3
# pipe [(fun x -> x+x); (fun x -> x + 3)] 3 ;;
- : int = 9
# pipe [(fun x -> x + 3);(fun x-> x + x)] 3;;
- : int = 12
以下是你需要填寫代碼:
let pipe fs =
let f a x = failwith "to be implemented" in
let base = failwith "to be implemented" in
List.fold_left f base fs
有人可以幫助我?
我認爲通常的作業規則是你應該顯示一些你已經嘗試過的代碼。沒有什麼可以評論的,沒有解決問題就很難提供幫助。 – jrouquie
以及我認爲它的基地應該讓基地= 0,但我不知道f部分。我將如何做到這一點。 –