是否可以在 F# 中定义 ** 运算符

cit*_*kid 4 f# custom-operator

let (**) ls1 ls2 = List.intersect ls1 ls2
Run Code Online (Sandbox Code Playgroud)

不起作用,因为 (**) 被视为注释。还有逃脱的可能吗?

Fyo*_*kin 7

您可以在括号内添加空格,如下所示:

let ( ** ) ls1 ls2 = List.intersect ls1 ls2
Run Code Online (Sandbox Code Playgroud)

但请记住,这**是“power”的标准 F# 运算符:

2 ** 3 = 8
Run Code Online (Sandbox Code Playgroud)

所以如果你在全局范围内这样重新定义它,你将无法在“权力”意义上使用它。