fre*_*ior 5 ocaml functional-programming list
我可以通过以下代码找到列表的最后一个元素.
let last (xs:'a list) : 'a =
let rec aux xs prev =
match xs with
| [] -> prev
| x::ys -> aux ys x in
match xs with
| [] -> failwith "no element"
| x::xs -> aux xs x
Run Code Online (Sandbox Code Playgroud)
如何使用List.fold_left
OCaml中的函数找到同一列表的最后一个元素?提前致谢!
fold_left
从头到尾访问列表,因此传递给的函数fold_left
应该用列表的当前元素替换累加器。因此简单地说,
let last = function
| x::xs -> List.fold_left (fun _ y -> y) x xs
| [] -> failwith "no element"
Run Code Online (Sandbox Code Playgroud)
你可以直接编写你的函数,而不需要aux
函数。
let rec last = function
| x::[] -> x
| _::xs -> last xs
| [] -> failwith "no element"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2221 次 |
最近记录: |