【发布时间】:2012-05-11 15:34:49
【问题描述】:
我想编写一个获取未排序列表(可能包含重复值)的过程,并使用“累积”a.k.a foldr、reduce 等对其进行排序。
我成功过滤了双精度值,但无法对其进行排序。一般来说,我看不到如何使用地图、过滤器、累积……对其进行排序。
我必须在不使用插入排序、冒泡排序的情况下完成它......
这是我现在的代码
(accumulate (lambda (x no-duplicate) (cons x (filter (lambda (z) (not (= x z))) no-duplicate))) '() (list 1 2 0 66 3 4))
【问题讨论】:
-
请注意:reduce 和accumulate 被称为foldl - 在从左侧遍历序列的同时组装结果...
标签: sorting scheme fold accumulate