88221


タイトルのようにOCamlで自分が定義した演算子の結合性を質問したいと思います。

ためしたこと：

[code]

    let (^-^) a b = a - b;;
    3 ^-^ 2 ^-^ 1;;
    - : int = 2
    
[/code]

ここは右結合ですね、

補充：

[code]

    let (||>) a b = a - b;;
    3 ||> 2 ||> 1;;
    - : int = 0
    
[/code]

なぜここでは左結合になるでしょう？

どんなルールで結合性が決まるのですか？


CC BY-SA 4.0
2022-04-08T03:11:37.753
88219
2022-04-08T04:30:52.973
2022-04-08T03:16:47.597
41314
41314
question
ocaml
OCamlで自分が定義した演算子の結合性は？


定義した演算子の名前がどの記号から始まるかによって、優先度と結合性が変わります。詳しくは OCaml のマニュアルをご覧ください:
<https://ocaml.org/manual/expr.html#ss%3Aprecedence-and-associativity>

今回の場合だと、`(^-^)` は `^` から始まるので右結合、`(||>)` は `|` から始まるので左結合です。


CC BY-SA 4.0
2022-04-08T04:30:52.973
88221
2022-04-08T04:30:52.973
19110
88219
answer