【发布时间】:2013-09-11 04:05:46
【问题描述】:
以下代码将一个元素插入到按升序排序的列表中。
let rec insert x l =
match l with
| [] -> [x]
| y::ys -> if x < y then x::y::ys else y::insert x ys
但是,我如何只使用 List.fold_right 实现上述功能,而没有递归呢?
【问题讨论】:
-
fold_right是递归 -
我的意思是我希望代码看起来像...'let insert x l = ...' 而不是'let rec insert x l = ...'
-
我不明白您为什么要使用折叠进行插入。 fold 必须扫描所有列表元素,但 insert 不需要。如果是家庭作业,那就不是好作业,可能会让你感到困惑。