我被要求在SMLNJ中编写过滤函数
filter: ('a -> bool) * 'a list -> 'a list
将函数f和列表L作为参数并返回一个新列表 包含L的元素l,使得f(l)为真。
例如:
filter(fn(x => x mod 3 = 0), [1,2,3,4,5,6,7,8,9,10])
returns [3, 6, 9]
由于缺乏ML的文档,我在这个功能上被困了几个小时,
我想知道如何将第二个参数传递给第一个参数。
答案 0 :(得分:4)
fun filter (f, []) = []
| filter (f, x::xs) = if f x
then x::(filter (f , xs))
else filter (f , xs);
我不确定你将第二个参数传递给第一个参数是什么意思。