Re: The whatever context

2006-04-10 Thread Larry Wall
On Sun, Apr 09, 2006 at 02:43:16PM +0300, Yuval Kogman wrote:
: Hi...
: 
: I think that Perl 6 should have a whatever context, which is
: essentially:
: 
:   I want either array or scalar or whatever... You choose
: 
: so that functions like grep can return an array in whatever
: context. This is best demonstrated using an example:
: 
:   my $x = grep { ... } @list; # returns count

I think that's already whatever context.  $x contains the resulting array.
It's only if you later say +$x that you'll get the number of elems.

Larry


Re: The whatever context

2006-04-10 Thread Yuval Kogman
On Mon, Apr 10, 2006 at 14:25:35 -0700, Larry Wall wrote:

 : my $x = grep { ... } @list; # returns count
 
 I think that's already whatever context.  $x contains the resulting array.
 It's only if you later say +$x that you'll get the number of elems.

Just for grep or for any function?

If just grep that means that grep simply doesn't use want.

If it's any function, then it means that all are constants are
list or whatever, and all we really have are coercers.

-- 
  Yuval Kogman [EMAIL PROTECTED]
http://nothingmuch.woobling.org  0xEBD27418



pgpOSjPzPmwDK.pgp
Description: PGP signature


The whatever context

2006-04-09 Thread Yuval Kogman
Hi...

I think that Perl 6 should have a whatever context, which is
essentially:

I want either array or scalar or whatever... You choose

so that functions like grep can return an array in whatever
context. This is best demonstrated using an example:

my $x = grep { ... } @list; # returns count

my $x = whatever grep { ... } @list; # the natural context for
# grep is array, no matter what the context really is

The usefulness of such a construct is two fold:

a. creating large anonymous structures with nested references or
scalar values without having to think (== good for when you are
evaluating a fucntion ref and you don't know what it is, but you
want the natural value to be returned).

b. writing eval bots and interactive shells:

(whatever eval $expr).perl;

;-)

-- 
  Yuval Kogman [EMAIL PROTECTED]
http://nothingmuch.woobling.org  0xEBD27418



pgp6fwdJ39afS.pgp
Description: PGP signature