From: Kazuhiro NISHIYAMA Date: 2000-11-19T12:35:40+09:00 Subject: [ruby-dev:11601] Re: accumulator, Enumerable#{foldr,foldl} On Sun, 19 Nov 2000 11:27:39 +0900 Takaaki Tateishi wrote: > def foldr(initval) > a = initval > reverse.each{|x| a = yield(x,a)} # reverseが定義されないとダメ. > a > end reverseの前にreverse_eachがあれば使った方がよさそう。 def foldr(initval) a = initval if respond_to? :reverse_each reverse_each{|x| a = yield(x,a)} elsif respond_to? :reverse reverse.each{|x| a = yield(x,a)} else raise 'reverse_eachかreverseが必要です' end a end --- ZnZ(ゼット エヌ ゼット) 西山和広(Kazuhiro NISHIYAMA) mailto:zn@mbf.nifty.com