Hi, At Sat, 8 Feb 2003 11:30:25 +0900, dblack / candle.superlink.net wrote: > > > This has possible implications for other classes: > > > > > > candle:~/hacking/ruby$ irb --simple-prompt > > > >> class A < Array; end; A.new.replace([1,2,3]).class > > > => A > > > >> class A < Array; end; A.new.replace([1,2,3]).map {|x| x}.class > > > => Array > > > > Enumerable#map always returns Array regardless its receiver. > > Right -- I'm just wondering why the "regardless-of-receiver" principle > operates here but not with String#scan and others. (And with > Regexp#match it's the class of the argument, not the receiver, that > determines the return value's class.) In this case, the returned object isn't concerned with the receiver. Enumerable methods return Array incidentally. OTOH, String#[], #scan and so on return the receivers' subcomponent. I also sometimes want ways to override the class of returned object, but it's another story. -- Nobu Nakada