From: Shin-ichro Hara Date: 1998-11-30T14:16:27+09:00 Subject: [ruby-dev:3703] Re: [ruby-list:11096] Re: MacRuby 原です。 In message "[ruby-dev:3699] Re: [ruby-list:11096] Re: MacRuby" on 98/11/30, Wakou Aoyama writes: | |青山です。 |そのつもりで書いたのですが、ちょっと足りなかったでしょうか。引数 0 を |返す(?)何らかの手段があると嬉しいかも。という事だったのですが。 | |例えば () が nil を返さなければ、 | |DATA = open($0).collect{|line| | unless "__END__\n" == line ... FALSE | () | else | line | end | } | |という感じで後からの nil の削除を無くせますよね。 | |DATA = open($0).collect{|line| | next unless "__END__\n" == line ... FALSE | line | } | |これも next が nil を返さなければ後からの nil の削除が不要になりますし。 今回のは push を利用する collect を使用すべきでなかったのかも しれません。 module Enumerable def gather ary = [] each { |x| ary.concat yield(x) } ary end end とでもいうのをつくって DATA = open($0).gather{|line| としたらどうでしょう。 #確かにイテレータブロックの中の next って青山さんの最初の期待通り #動くならうれしいけど、これが現状の yield のモデルですね。