2014-02-24 91 views
1

我一問SMLNJSML/NJ寫過濾函數,它接受一個匿名函數作爲參數

filter: ('a -> bool) * 'a list -> 'a list 

,需要一個函數f和一個列表L作爲參數,並返回到編寫過濾功能一個新的列表 包含L的元素l,使得f(1)爲真。

例如:

filter(fn(x => x mod 3 = 0), [1,2,3,4,5,6,7,8,9,10]) 
returns [3, 6, 9] 

由於缺乏ML的文件我堅持了這個功能小時,

我不知道如何來的第二個參數傳遞給第一個參數。

回答

4
fun filter (f, []) = [] 
    | filter (f, x::xs) = if f x 
         then x::(filter (f , xs)) 
         else filter (f , xs); 

我不太確定你的意思是把第二個參數傳遞給第一個參數。

相關問題