Создать новый оператор в F # с явным типом данных

#f# #new-operator

#f# #new-operator

Вопрос:

Есть ли способ, которым я могу явно указать элементы нового оператора, который я определяю?

Я проверил документ, но не смог его найти: 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
 

введите описание изображения здесь

Ответ №1:

В @^ параметрах задаются кортежи. Вашему оператору нужны два параметра. Если вы укажете

 let (@^) (a: bool) (b: bool) : bool =
    a <> b
 

затем

 true @^ false // true
 

Комментарии:

1. Спасибо! все еще не привык к sintax.