このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ミクスチャ=ごった煮

宣言(名前のプロファイリング)と定義(束縛、名前のアタッチング)をゴッチャに混ぜて書いた形式をミクスチャと呼ぶことにする。

mixture Succ := {
 type X;
 X := int;
 value e: X;
 function succ : X->X
}

これはミクスチャの例。同じ名前に対して、「宣言が先で、定義は後」というルールさえ守れば、適当に混ぜて書いてよい。

ミクスチャに引数(argument、パラメータとは区別する!)を付けてもよい。引数を仮インスタンスとして使ってよい。

mixture OneFun (S of signature {type X}) := {
  type X;
  X := S.X;
  type Y;
  function f:X ->Y
}

引数なしミクスチャも引数ありミクスチャも、部分インスタンスを定義する。部分インスタンスは特殊なトランスフォーマーなので、結局、ミクスチャはトランスフォーマーの記述形式に過ぎない。

ミクスチャのメリットは、書き方の制約がゆるいので、楽に書けることである。いいかげんに書けることである。人間はいいかげんでモノグサだから、人間が使う記述形式としてはミクスチャが必須だと思う。