list - F# If 语句 List.exists

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

目前我收到错误消息:“这个表达式应该有类型
''a -> bool'
但这里有类型
' bool '"

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

最佳答案

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

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

甚至:
if List.contains y ys then

遵循 Panagiotis 的建议。

关于list - F# If 语句 List.exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39871071/

相关文章:

list - Prolog - 递归调用

java - 使用循环自动化逻辑?

f# - 如何访问嵌套的可区分联合值?

iphone - 如何用不同的变量重复一个 Action ?

c# - 使用 WCF 和 C# (F#) 收集类似散点的操作

f# - Visual Studio 2012 中 F# 的智能感知不起作用

c# - 满足给定条件的元素的索引

python - 如何使用 boolean 值退出 'for' 循环?

c# - C#中套接字的列表或ArrayList

Python - 简化重复的 if 语句