在F#中使用显式数据类型创建新运算符
f#
有没有办法可以明确定义我定义的新运算符的元素?
我检查了文档但找不到它:https :
//docs.microsoft.com/en-us/dotnet/fsharp/language-reference/operator-overloading#creating-new-operators
假设我定义了以下xor运算符:
let (^@) a b =
a <> b
let result = true ^@ false
它工作正常,但以下定义不...
let (@^) (a: bool, b:bool) : bool =
a <> b
回答
在@^参数是元组的。您的操作员需要两个参数。如果您指定
let (@^) (a: bool) (b: bool) : bool =
a <> b
然后
true @^ false // true