モジュールの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 の分だけ追加拡張している。