我试图非递归地过滤列表,但我不确定如何去做。 举一个简单的例子,假设我有一个列表[1,2,3,4,5,6,7],我想过滤它,所以它返回一个大于3的数字列表,即[4,5,6, 7]。
我可以递归地做到没有问题,但我被困在这里。不幸的是,我是sml的新手,我能想到的最好的就是使用地图,但我认为地图不是为此制作的。
答案 0 :(得分:2)
你说得对:map
没有为此做出 - map
生成的列表总是与map
的列表大小相同。
List.filter
但 为此而制作。如果使用函数作为参数调用List.filter
,如果数字大于3,则返回true,它将完全按照您的意愿执行。
答案 1 :(得分:0)
提示:使用foldr
尝试,而不是map
。