F#中的Haskell列表差异运算符

时间:2020-03-05 18:52:27  来源:igfitidea点击:

F#中有Haskell的列表差异运算符\\的等效运算符吗?

解决方案

回答

不,...只需使用特殊字符集将其编写并使其成为中缀运算符即可。反斜杠(\)不在下面的列表中,因此它不能用作中缀运算符。请参阅手册:

infix-op :=

or || & && <OP >OP $OP = |OP &OP ^OP :: -OP +OP *OP /OP %OP

**OP

  
  prefix-op :=

!OP ?OP ~OP -OP +OP % %% & &&

回答

假设我们确实想要常规集差异,而不是Haskell显然提供的奇怪的有序但未排序的多集减法,只需使用内置的set函数将列表转换为集,然后使用内置的-运算符即可计算集合差异:

set xs - set ys

例如:

> set [1..5] - set [2..4];;
val it : Set<int> = seq [1; 5]