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 <nothi...@woobling.org>
http://nothingmuch.woobling.org 0xEBD27418
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
> : 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.