F# If 语句 List.exists
F# If Statement List.exists
这是一项学校作业,但我要做的所有事情 post 都是由我和我自己完成的。因此,我只需要您帮助我完成任务中卡住的一小步。
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 -> bool'
但这里有类型
'bool'"
有人可以告诉我我做错了什么吗?
List.exists 期望第一个参数是一个函数,它将在元素和 returns 布尔值上进行检查。你想检查元素是否在你可以写的列表中:
if List.exists ((=) y) ys then
甚至:
if List.contains y ys then
遵循 Panagiotis 的建议。
这是一项学校作业,但我要做的所有事情 post 都是由我和我自己完成的。因此,我只需要您帮助我完成任务中卡住的一小步。
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 -> bool' 但这里有类型 'bool'"
有人可以告诉我我做错了什么吗?
List.exists 期望第一个参数是一个函数,它将在元素和 returns 布尔值上进行检查。你想检查元素是否在你可以写的列表中:
if List.exists ((=) y) ys then
甚至:
if List.contains y ys then
遵循 Panagiotis 的建议。