From: Kazuhiro HIWADA Date: 1999-08-07T00:25:26+09:00 Subject: [ruby-list:15948] Re: Windows95 で Tk ひわだです。こんにちは。 From: gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) Subject: [ruby-list:15940] Re: Windows95 で Tk Date: Fri, 6 Aug 1999 18:25:14 +0900 > >私も前橋さんのおっしゃるようにブロックパラメータは代入(多重 > >代入)との類似性の方が強いと思います。 > > > >ブロックをMLのlambdaのようにとらえるとごとけんさんの視点の方 > >が自然なんでしょうけど、実態はそうではありませんよね。どーで > >も良いことですが、歴史的にもそうではありません。 > > そうなんですね。頭では分かっているつもりなんだけど、どうして > もlabmdaのように見てしまうんです。ごめんなさい。 > > できれば、Ruby 2.0あたりではlabmda風味になってくれるとすっき > りするような気もするのですが。とくにこのarityの周辺は分かり > にくくなってますし。僕の勘違いである可能性も大だけど。 apply(a,b,c){|a,&blk| ...}{|b,&blk| ...}{|c| ...} とか、 というのは冗談で、 そもそもメソッドが lambda とは違うものだと思えば、ブロックが lambda だ としても引数がメソッド風味である要はないのかも。 #本来メソッド内で書かれるはずのものを、外部で定義できるようにくくり出 #したと考えると、代入と同じというのも僕的にはしっくりきます。 ただ、将来メソッドに、ラベル付引数 .configure(text:"hello") みたいなの が使えるようになったとき、ブロック引数にそれが必要かどうかは、一考の余 地ありかもしれません。機能に差が出るので。 僕自身はそんな多機能なブロックつくるぐらいなら、名前つけてクラスにして しまうでしょうが ^^;;。 -- 檜田 和浩