On Thu, Aug 07, 2008 at 06:15:07PM +0200, TSa wrote:
>> Do you write
>>
>> $a lt:lc $b le:lc $c
>
> I think that works and looks best. My favorite hope is that
>
> $x = log:2 $y;
>
> flies, as well.
>
> $x = log:base(2) $y;
>
> is a bit lengthy and
>
> $x = log $y, :base(2);
>
> looks more like a two element list assigned to $x.
That's because it *is* a two element list. In the current scheme of
things, you have to put:
$x = log $y :base(2);
The point being that adverbs are recognized only where an infix is
expected. Otherwise they're just pairs used as nouns. Currently
after "log" a term is expected, so log:base(2) would be parsed
as log(:base(2)). The whitespace proposal is essentially to
require whitespace between any operator any following pair if the
pair is intended to be a noun and not an adverb. We actually
thought of this years ago in the design meeting and rejected it at the
time because, in particular
123,:foo
would surprise a lot of people by looking for the ",:foo" operator.
But maybe we could put in an exception for confusing forms that
are guaranteed not to work. I can't imagine why anyone would want
a ",:foo" operator, for instance. Doubtless there are other confusing
operators though.
Alternately, we could force everyone to put space after comma. :)
Larry