F#If Statement List.exists

时间:2016-10-05 10:05:10

标签: list if-statement f# exists elements

这是学校作业,但我即将发布的所有内容都是由我和我完成的。因此,我只需要你的帮助,在我的任务中迈出一小步,我就被卡住了。

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的成员

目前我得到的错误是:“此表达式预计会有类型     '' - >布尔” 但这里有类型     '布尔'“

有人可以告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:8)

List.exists期望第一个参数是一个函数,它将在元素上检查并返回布尔值。您想检查元素是否在您可以编写的列表中:

if List.exists ((=) y) ys then

甚至:

if List.contains y ys then

遵循Panagiotis的建议。