如何获取列表的最后一个元素的值?我注意到List.hd(或.Head)返回一个项目,而List.tl(或.Tail)返回一个List。
是Rev List和获得HD的唯一方法吗?谢谢。
最佳答案
试试这个功能。它使用递归,尽管由于它是尾递归,所以无论如何它都会优化迭代。无论如何,它最有可能比反转整个列表更快(使用List.rev
)。
let rec last = function
| hd :: [] -> hd
| hd :: tl -> last tl
| _ -> failwith "Empty list."
但是,Pavel Minaev的答案绝对值得考虑。但是,您所请求的算法在少数情况下可能很有用,并且是完成任务的最有效方法。
关于list - 列表中最后一个元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1175056/