On Sat, 21 Sep 2002, Jonathan Scott Duff wrote:
>
> Why can't perl be smart enough to figure out what we mean?  Something
> along these lines:
>
>       (7)     # list context
>       (3+4)   # numeric context (there's a numeric operator in there)
>       (3+4,5) # list context (comma trumps the numeric op)
My understanding of context (which admittedly, may be completely
incorrect) is that context is imposed from the outside.  So in (3+4), 3
and 4 are in numeric contect because the '+' says so, but we can't tell
what context (...) is in, because there is no context.  + has higher
precendence than comma, so the 3+4 becomes 7 before the comma creates a
list: 7,5.

A different workaround just occurred to me for perl6.  Maybe instead of
(7) having list context imposed by the parenthesis, imposing list context
on a scalar automatically creates a 1 item list.  So:

   @a = (7);

is the same as

   @a = 7;

And actually, that works in perl5 too.

So maybe we're arguing about nothing?


> (7,) is an abomination.  It's one of python's misfeatures that annoys
> me the most.

Strangely enough, it's one of the features of perl that I really like,
although you have to think of it in the context of
(
        'a',
        'long',
        'list',
        'of',
        'items',
        'one',
        'per',
        'line',   # <-- notice the comma!
)

Of course, _requiring_ the comma is bad, but as long as we can use [7] or
rely on list context creating a single item list out of a single item, it
is not required.

~ John Williams

Reply via email to