>>968
>そして、その際には、属性と方法を適切に弁別する作業が欠かせない。
>つまり、「良い」OOからしてみると、
>属性と方法が渾然一体となってしまうような状態は好ましいとはいえない。

EiffelはOOだけど属性と方法を弁別しないぞ〜

foo: INTEGER   -- 変数
foo: INTEGER is 10   -- 定数
foo: INTEGER is do 〜 end   -- 関数

Eiffelは外から変数に代入できないのでクラスの利用者には
どれで実装されていても関係ない。

proc(entity.foo)

entity.foo はクラスの利用者にはどういうふうに実装されているか分からない。

それに proc(f: FUNCTION [ANY, TUPLE, INTEGER]) is do 〜 end

みたいにすると関数を引数として渡せる。

Smalltalk も "block closure" あるし。