オブジェクト指向と高階関数は同じようなもの?

等とLL Ringで口走った責任をとって解説してみる。オブジェクトをλ計算にencodeする話は1990年代に流行ってλ計算+レコードで「大体」表現できる、ということになったらしい。情報隠蔽は存在型(exsitential type)でもstateのclosureでもよい(というか、それらも似たようなものだが)。細かい違いはいろいろとあるようだし、そもそも「オブジェクト指向」の定義も曖昧なので問題がwell-definedではないかもしれないが。

ちなみに、4年生のときに研究室配属されて、最初に参加したゼミの講演が上述のcomparing object encodingsだったのだが(話者はTACSで来日していたPierce)、当たり前ながらまったくわからず、これはヤバいと思って、数週間後の自分の発表*1までに型システム関係の論文を20本ぐらい読み漁った(当時はTAPLなどという便利なものはなかった)。今にして思えば、あれがわからなくても何らヤバくなかった気がする。

追記:実は私はY研の学生だったことは一度もなかったり。あと、Y研出身の助教授どころか教授もたくさんいるような。と自分が対象かどうかもわからない餌に食いついてみるテスト。

*1:当時のレジュメが公開されていたら全力で削除せねば、と思ったがなかった。良かった。