moochan です.

On Tue, 9 Mar 1999 16:14:50 +0900
matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

>|おや,新語登場ですか.Rubyブロック == イテレータ => true ですね.
>
>「Rubyブロック」は新語じゃなくて「Rubyのブロック」の省略系で
>す.ときどきイテレータブロックと呼ばれるアレですね.

すみません.大勘違いでした.(^^;;;

# 最近,構築にはまっててRubyさわってないもんなあ(^^;;;
# 言い訳じゃないけどリファレンスマニュアルも分かり易くならん?

>ああ,ありとあらゆるものがオブジェクトでないことについてです
>ね.では,たとえばSmalltalkにおいてメソッドはオブジェクトで
>はありませんが,これについてはどう思いますか? いくつかの言
>語ではメソッドは立派なオブジェクトです.

# うーん.こりゃオブジェクトの定義に逆のぼらにゃきゃなんないなあ.


>あるいは変数がオブジェクトでないことについてはどうでしょうか?
>いくつかの言語では変数はオブジェクトです(Cとか^^;;;).

K&R にはそう書かれていますね.ですから定義ですって.Objectの.

# K&Rか懐かしい響き.家の奥でぐっすりお休みだもんね.

>言語設計と言うのは結局はバランスの問題で,Smalltalkにおいて
>オブジェクトとして扱われているものがすべからくオブジェクトで
>あるべきかというとそうでもないわけです.

でしょうね.バランス,妙に納得させられる言葉だ.
# 妥協とも近いなあ

>実際,Smalltalkにおいても ifTrue:ifFalse: とか whileTrue: と
>かは,ブロックをブロックオブジェクトとして扱っているわけでは
>なくて,メソッド呼び出しではない内部的な制御構造に変換してい
>ます.統一的にオブジェクトとして扱っているように見えるのは幻
>想に過ぎないわけです.

そーなんですか.# 知るすべも無い.

>|だったら.Rubyオブジェクトは手続きオブジェクトに吸収するのは如何でしょう?
>|その方が,OOPLとしての設計アーキテクチャがスッキリすると思いますが.
>
>ブロックはすべてオブジェクトにせよ,という提案だと思いますが,
>Smalltalkでさえ実装上はオブジェクトとして扱うことを拒否した
>前歴を考えるとあまり良い選択とは思えませんです.

見かけはオブジェクトだが内部は非オブジェクトとと言うのと,その逆では
どちらがいいのでしょう.
# ケースバイケースか?

>|>それはifTrue:ifFalse:のせいではないですか? つまり,Rubyのイ
>|>テレータの仕様のせいではなく,Rubyにはちゃんとした(普通の)制
>|>御構造があるので,そういう目的にブロックを使う必要がないと.
>|>で,そういう目的でない使い方であるコレクション系クラスには残っ
>|>たと思います.
>|
>|Smalltelk では,true も false もオブジェクトですが,しかもメッセージを受
>|信する立派なオブジェクトですね.
>|# あ.Rubyのそれもオブジェクトですが,Smalltalkとは異なりますね.まるで
>|# VBみたいに.
>
>VBみたいなとは失礼な..

ええ,失礼でした.
それはifTrue:ifFalse:の「うん,これは表面的にはオブジェクトでないほうが
使いやすい」に反応したのでした.


>以下のものを見てどう思います?
>
>  class TrueClass
>      def ifTrue yield() end
>  end
>  class FalseClass
>      def ifTrue yield() end
>  end
>  (5 == 25).ifFalse { print "false\n" }
>  (5 < 25).ifTrue { print "true\n" }

ええ.確かに素晴らしいことは素晴らしいですが,

aBoolean ifTrue: { print "true\n" } ifFalse: { print "false\n" }

みたいなことができたらもっと驚いたかも.


>まあ,失礼うんぬんは冗談ですが,trueもfalseも立派なメッセー
>ジを受け取るオブジェクトであることは認識して頂きたいです.む

trueもfalseもオブジェクトであることは理解しています.


>しろ,Smalltalkの方がifTrue:ifFalse:を特別扱いしている点で
>(見掛けはともかく)オブジェクト指向的ではないかも.

わかりました.インプットしておきます.

>|何かもう少し簡単で具体的で結果を試せるようなサンプルを示して頂けると有難
>|いですねえ.
>
>「簡単で具体的で結果を試せる」とはまた難しいことをおっしゃる.
>それが簡単にできるようなら苦労してませんって.^^;;;

# まつもとさんから難しいなんて言葉がでるとは想像もしなかったなあ.

# いつもながらまつもとさんのパワーには「青年力」を感じさせられる
# 私は中年力,いや老人力だ.(^^;;;
---
(^。^)(^・^)(^-^)(^ム^)	〜 moochan / ss.hitachizosen.co.jp