Haskell のインフィックス関数の適用優先​​順位 質問する

Haskell のインフィックス関数の適用優先​​順位 質問する

とします。この関数は、 、または中置記法を使用して のf x y = x * y2 つの方法で適用できます。この最後の式には演算子規則が適用されますか? この適用の優先順位はどうなるでしょうか? これは単に関数適用の別の形式であり、優先順位も最も高くなるのでしょうか?f 5 65 `f` 6

コンパイラはこの特別な形式 (および``/または名前が文字で始まるため(?)) を認識し、これを演算子と見なすのではなく、実際には通常の関数アプリケーションとして扱うものと思われます。

ベストアンサー1

Haskell 98 レポートセクションがありますオペレータアプリケーションそれは明らかです:

演算子は、+ や $$ などの演算子記号、または `op` などのバッククォートで囲まれた通常の識別子です。たとえば、接頭辞適用 op xy と書く代わりに、中置適用 x `op` y と書くことができます。`op` に固定性宣言が指定されていない場合は、デフォルトで最高の優先順位と左結合になります (セクション 4.4.2 を参照)。

他の回答からもわかるように、報告書には次のようなセクションもある。固定性宣言これにより、独自の固定性を定義できます。例:

infixl 7 `op`

おすすめ記事