【发布时间】:2017-02-13 17:27:50
【问题描述】:
这是一项学校作业,但我要发布的所有内容都是由我和我自己完成的。因此,我只需要你的帮助来完成我被卡住的任务中的一小步。
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 的成员
目前我收到错误消息:“此表达式应具有类型 ''a -> 布尔值' 但这里有类型 '布尔'"
谁能告诉我我做错了什么?
【问题讨论】:
-
首先,您将
y与List.exists y ys进行比较,后者应该返回真或假。你可能想写if (List.exists y ys) then -
第二,
List.exists需要一个函数。如果要检查列表是否包含项目,请使用List.contains -
我认为这个练习并不意味着使用标准函数:)
标签: list if-statement f# exists elements