少しよもやま話だ。
一昨日書いた他言語から見た Elixir (macro, protocol, binary構文)で、OOPのClass (Prototype) とElixirのProtocolを並列した。並列して実用は全く同じなのだが、なんだか逆だと云う並列だ。OOPでは (AとBがMを継承するとして) Mに関するclass Aとclass Bにmを拡張していくのに、Protocolではmodule MにAとBに関するmを拡張していく。逆とはいわないがなんだか逆だ。
此れかもしれない。
cf. 代数と余代数、クラスと余クラス - 檜山正幸のキマイラ飼育記 http://d.hatena.ne.jp/m-hiyama/20130318/1363563919
ほんたうは「隱蔽代数」に就いて書いて有った筈だと思って検索してゐた。
此所数日、構文木macroと、OOPの隱蔽 (packaging) は逆ではないがなんだか逆だと感じてゐた。其れも此れかもしれない。此んな〈双対性〉はありふれてゐる気がする。