DOTN3=CatPict と絵図テンプレート処理

次の語は同義語。

  1. テンプレート、テンプレート変数
  2. シェマ、シェマ変数
  3. パターン、パターン変数
  4. マクロ、マクロ変数
  5. ジェネリック{ス}?、ジェネリック{ス}?変数
  6. ……、プレースホルダ

テンプレートのテンプレート変数を、実引数で置換〈substitute | replace〉することを、テンプレート展開〈template expansion〉と呼ぶ。テンプレートへの実引数は、展開のコンテキスト〈context〉とか環境〈environment〉とも呼ぶが、引数〈arguments〉でもよい。

展開過程は次の図式(横棒図〈horizontal-bar figure〉)で表す。

  args(context)      template
  ---------------------------- expansion
           result

テンプレート処理で記述される圏論的オペレータ/コンビネータの典型例は、コンパクト閉圏におけるカリー化/反カリー化。テンプレートは穴=テンプレート変数を含む絵図。絵図テンプレート〈pictorial template〉の処理になる。

絵図テンプレート処理は絵図ラムダ式で表現できる。

      f
   X  →  Y プロファイル部
   ∈    ∈
   x |→  E 定義部

または、

     x:X
  -------- f プロファイル部
     y:Y
  where y = E

項の記述には、DOTN3を使う。DOTN3はCatPict〈categorical pictgram〉とも呼ぶ。CatPictは次の構成素からなる。

  1. アイコン、通常の文字も含む
  2. 結合記号、\otimes, ; など。
  3. グルーピング記号=囲み記号
  4. 区切り記号=カンマまたは空白または線
  5. 描画次元と描画方向の規約
  6. レイアウトルール

特に、コンパクト閉圏で使えるCatPictを開発すべき。


ついでのメモ: ベクトル空間Vの基底集合Aを使って、任意のベクトルxを表現するとき、次の記法を使う。

x = \displaystyle \overset{\xi}{\sum}_{A} a = \sum_{a\in A}\xi(a)a

この場合、xは so-called"ベクトル・テンソル" であり、ξは so-called"行列" である。CatPictでは、総和記号はそのまま使い続けて、aの部分にピクトグラム〈絵図言語〉を使う。

ピクトグラムによる計算では、絵図テンプレートの定義と絵図テンプレートの展開が多用される。