因此,我編寫了一個函數「過濾器」,該函數應用於給定的謂詞到輸入列表中的每個元素,並檢查它是否應該包含在輸出。編寫過濾器謂詞:「表達式的類型爲int ..預計爲bool類型」
let rec filer (pred: 'a -> bool) (l: 'a list) : 'a list =
begin match l with
| [] -> []
| hd :: rest -> if (pred hd) then hd :: (filter pred rest) else filter pred rest
end
現在我正在寫一個謂詞,可以傳遞給過濾器以保持5的倍數。
let multiples_of_five_pred: int -> bool =
filter (fun (x: int) -> x mod 5)
我不知道我在這裏失蹤...我收到說語法錯誤「這種表達的類型爲int,但預計bool類型的表達式」。
那麼,編譯器試圖說什麼? :D – 2013-02-09 19:19:21