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

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

モジュールのenrichment

大局的プログラミング(programming in the large)の話題:

モジュールの演算5つはもっと簡単になる - 檜山正幸のキマイラ飼育記 メモ編のモジュール演算の件だが:

enrichmentってのがイマイチわからん。が、次のようなもんだと思う。

  • module M = (A+B).((from N import A;) + K)

ここで、Aは、Nがprovidesする名前の部分集合(A⊆ cod(N))、BはKがprovidesする名前の集合(defineする名前の集合の部分集合)。MのなかにN(ただし、Aで制限している)が入り混んでいるので、containmentだとも言える。

importでいったん内側(プレべートな名前空間)に入れて、そのままprovieしている。Kで定義されたBの部分は定義を付け加えたことになる。

  • module M = (A.N, B.K)

と同じ。特に、A = cod(N) のときは、

  • module M = (N, B.K)

B.K の分だけ追加拡張している。