SML:非递归地过滤列表

时间:2013-02-17 04:36:48

标签: list filter sml

我试图非递归地过滤列表,但我不确定如何去做。 举一个简单的例子,假设我有一个列表[1,2,3,4,5,6,7],我想过滤它,所以它返回一个大于3的数字列表,即[4,5,6, 7]。

我可以递归地做到没有问题,但我被困在这里。不幸的是,我是sml的新手,我能想到的最好的就是使用地图,但我认为地图不是为此制作的。

2 个答案:

答案 0 :(得分:2)

你说得对:map没有为此做出 - map生成的列表总是与map的列表大小相同。

List.filter 为此而制作。如果使用函数作为参数调用List.filter,如果数字大于3,则返回true,它将完全按照您的意愿执行。

答案 1 :(得分:0)

提示:使用foldr尝试,而不是map