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]