On Mon, Jun 30, 2008 at 01:43:11PM +0200, Moritz Lenz wrote: > Ovid wrote: > > --- On Sun, 29/6/08, Patrick R. Michaud <[EMAIL PROTECTED]> wrote: > > > >> Do C<grep> and C<reverse> act like the > >> C<join> method, in that > >> they work for C<Any> object and not just objects of > >> type C<List>? > >> > >> In other words,, should C< $x.grep(...) > work even > >> if $x isn't normally a list type? > > > > If I understand you correctly, I think you're asking if grep and map can be > > applied to junctions? > > I think Patrick meant something else. > > The other day we had the discussion what $x.join($sep) should be, > specifically if it should work for non-List $x. $Larry said yes, it > should work, and the way to achieve that is to use Any.join. > Now Patrick wants to know which of the various list methods need to be > in Any.
Moritz is correct -- in order to get ('foo').join(':') to work as people will expect, it was decided to define "universal" methods in the Any class as part of the prelude [1]. So my question is really whether or not we consider grep and reverse to be universal methods in this sense also, so that C< $x.grep(...) > and C< $x.reverse > will work even if $x isn't a value that normally does list-type operations. I'm suspecting that the answer is "yes, they are universal", but wanted to confirm it. Thanks! Pm