演算子の構文
- 前置: ¬A, -x
- 後置: n!, f' 微分
- 中置: いくらでも例はある
- 右項囲み: f(x) 適用 a[i] インデックス適用
- 両項囲み: (x, y) 内積, (x|y) 内積, <x|y> スカラー積, (C, D) 旧カンマ圏
- 右上付き: x2, f*, AT, x-1, f' 微分
- 右下付き: f*, f∪
- 三項: (- ? - : -)
- 単行囲み: [x] ガウス記号
- 真上付き: 時間微分、ハットをかぶせるゲルファント変換、平均値の上線、複素共役
- 真下付き: 台対象を表す下線
左項囲み、左上付き、左下付き、下線以外の真下付きはあまり使われない。が、最近僕はよく使う。特にインデキシングは左肩、左下も使う。
括弧は、グルーピング以外に演算子記号(の一部)として使われることがある。グルーピング括弧、演算子括弧、タプル囲み記号。
他に、無記号配置演算子記法もある。二項の指数、二項とみたインデックス適用など。演算子記号+引数リストの配置形式。無記号で配置のみで演算子適用を表現することもある。配置のシリアライズ方式も問題になる。"--" = "-1-2" = "_1_2" とかで書くか。
セクション記法の構成素
[追記]Haskellのセクションは部分適用の記法のことだから、ここの記法は略式ラムダ構文だろう。λ(x, y)(x + y) = "- + -" [/追記]
- セクション囲み記号: Haskellでは丸括弧
- セクション内無名変数: ハイフンまたはアンダスコア
- 無名変数の省略ルール
セクション記法の具体例
- セクション囲み記号: 二重引用符
- セクション内無名変数: ハイフンまたはアンダスコア
- 無名変数の省略ルール: 適宜
セクション記法の例
- "¬-" : Pred→Pred
- "-_" : R→R
- "- ? - : -" : Prop×Expr×Expr→Expr 構文論
- "- ? - : -" : Pred×Func×Func→Func 意味論
- "[-]":R→Z
- "-2":R→R
- "-(-)" : Fun×Arg→Val
- "<-|->" : V*×V→R