我正在尝试实施以下内容:
let list = [1;2;3;4];;
if ((List.exists 3 list) = true)
print_string "element exists in list\n"
但是它给了我错误:这个表达式有int类型列表 但是预期表达式为'a - >布尔
我不确定这意味着什么。
答案 0 :(得分:1)
List.exists
采用函数和列表,而不是值和列表。要测试值是否在列表中,请使用List.mem
。
您的if
看起来像C语法。在OCaml中,您需要使用then
(但您不需要括号)。
作为旁注,if e = true then ...
与if e then ...
相同。如果你为事物使用好名字,后者通常更清楚。