gpt4 book ai didi

list - 列表中的最后一个元素使用 ocaml List.fold_left

转载 作者:行者123 更新时间:2023-12-04 15:23:20 26 4
gpt4 key购买 nike

我可以通过以下代码找到列表的最后一个元素。

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

如何使用 List.fold_left 找到同一列表的最后一个元素OCaml 中的函数?
提前致谢!

最佳答案

fold_left从头到尾访问列表,因此函数传递给 fold_left应该只用列表的当前元素替换累加器。因此简单地说,

let last = function
| x::xs -> List.fold_left (fun _ y -> y) x xs
| [] -> failwith "no element"

您可以直接编写函数,无需 aux功能。
let rec last = function
| x::[] -> x
| _::xs -> last xs
| [] -> failwith "no element"

关于list - 列表中的最后一个元素使用 ocaml List.fold_left,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com