使用高阶函数的列表中最小的元素

时间:2016-12-05 00:28:22

标签: scheme racket higher-order-functions

我试图找到数字列表中的最小元素。

使用显式递归时这是微不足道的,但我正在寻找一种方法来使用内置的高阶函数来完成此操作,例如

map

filter

foldr

换句话说,我想使用这些功能的组合来获得我想要的东西。

2 个答案:

答案 0 :(得分:1)

使用foldr。累加器以+ inf.0开头。 combine-accumulator-and-element应该返回最小的累加器和元素。

答案 1 :(得分:0)

还可以在列表中使用'sort'函数,然后获取排序列表的第一个元素:

(first (sort '(5 2 3 6 4 0 9 -3 2 6) <))
;; => -3