関数型とオブジェクト指向

[id:lethevert:20060118:p2]
Smalltalk-72のクラス定義を見ていて思ったのです。
クロージャを「状態を持った手続き」ということができるなら、オブジェクトは、それを「手続きを持った状態」と読み替えたものと言えるのではないか?
[id:lethevert:20060117:p1]のコメント欄
[id:lethevert:20060118:p2]のコメント欄
上であげられた、アクター理論とクロージャの関係の説明を見ても、そのアイデアは、そう大はずれではないように思いますが。
で、そういう話が成り立つなら、「クラス≒クロージャ」ということも無理ではないということで、関数型言語で表現可能な範囲は、多かれ少なかれオブジェクト指向言語でも表現可能だし、また逆も真ということになるのではないかという気がしてきました。
特にJavaのように、クラスの身分が高いオブジェクト指向言語*1なら、書き方を研究すれば、関数型言語と同程度に柔軟な記述が可能なんじゃないかと思います。
ここら辺は、今後の研究課題ということで。

*1:SmalltalkRubyは、メソッド内にローカルクラスを定義することはできないんじゃないかと思いますけど、どうなんでしょう?