我有一个基本的函数,它检查列表中是否有重复项,如果有则返回true,否则返回false。
# let rec check_dup l = match l with
[] -> false
| (h::t) ->
let x = (List.filter h t) in
if (x == []) then
check_dup t
else
true
;;
但是当我尝试使用这段代码时,我遇到了错误
Characters 92-93:
let x = (List.filter h t) in
^
Error: This expression has type ('a -> bool) list
but an expression was expected of type 'a list
我不是很理解为什么会发生这种情况,a->bool列表类型是从哪里来的?