【发布时间】:2013-01-25 06:31:24
【问题描述】:
所以我写了一个函数“过滤器”,它应用于输入列表中每个元素的给定谓词,并检查它是否应该包含在输出中。
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
现在我正在编写一个谓词,它可以传递给过滤器以保持五的倍数。
let multiples_of_five_pred: int -> bool =
filter (fun (x: int) -> x mod 5)
我不知道我在这里缺少什么...我收到一个语法错误,提示“此表达式的类型为 int,但表达式应为 bool 类型”。
【问题讨论】:
-
那么,编译器想要表达的是是什么? :D
标签: ocaml