2013-02-17 66 views
1

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

我可以做递归没有问题,但我卡在这里。不幸的是,我是sml的新手,我能想到的最好的方法是使用map,但我不认为map是为此制作的。

回答

2

你是对的:map不是为此制作的 - map生成的列表将始终与map的列表具有相同的尺寸。

List.filter然而是为此做出的。如果你调用List.filter作为一个参数,如果一个数字大于3则返回true,它会按照你的意愿进行。

0

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