所以我写了一个函数“filter”,它应用于输入列表中每个元素的给定谓词,并检查它是否应该包含在输出中。
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 类型的”。