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