这是学校作业,但我即将发布的所有内容都是由我和我完成的。因此,我只需要你的帮助,在我的任务中迈出一小步,我就被卡住了。
let rec removeDuplicates2 xs =
match xs with
|[]->[]
|y::ys -> if y = (List.exists y ys) then
(removeDuplicates2 ys)
else
y::(removeDuplicates2 ys)
printfn "%A" (removeDuplicates2 [3;1;3;2;1]) // result must be [3;1;2]
我需要帮助的是制作if语句,检查元素y是否是列表ys的成员
目前我得到的错误是:“此表达式预计会有类型 '' - >布尔” 但这里有类型 '布尔'“
有人可以告诉我我做错了什么吗?
答案 0 :(得分:8)
List.exists期望第一个参数是一个函数,它将在元素上检查并返回布尔值。您想检查元素是否在您可以编写的列表中:
if List.exists ((=) y) ys then
甚至:
if List.contains y ys then
遵循Panagiotis的建议。