Re: Indirect objects, adverbial arguments and whitespace

2007-10-08 Thread Dr.Ruud
Markus Laker schreef:

 If I've got this right:
 
 mangle $foo :a;# mangle($foo, a = 1);
 mangle $foo: a;# $foo.mangle(a());
 
 So these --
 
 mangle $foo:a;
 mangle $foo : a;
 
 are ambiguous and, as far as I can tell from the synopses, undefined.
 So what's the rule: that indirect-object colon needs whitespace after
 but not before, and adverbial colon needs whitespace before but not
 after? 
 
 The reason I ask is that I'm knocking up an intro to Perl 6 for C and
 C++ programmers.  I expect some of Perl 6's whitespace rules to trip
 up people used to C++ (as they have me, in my clumsy attempts with
 Pugs), and I'd like to summarise all the whitespace dwimmery in one
 place. 

We were making fun of this:
   news:[EMAIL PROTECTED] 

-- 
Affijn, Ruud

Gewoon is een tijger.


Indirect objects, adverbial arguments and whitespace

2007-10-07 Thread Markus Laker
If I've got this right:

mangle $foo :a;# mangle($foo, a = 1);
mangle $foo: a;# $foo.mangle(a());

So these --

mangle $foo:a;
mangle $foo : a;

are ambiguous and, as far as I can tell from the synopses, undefined.  So
what's the rule: that indirect-object colon needs whitespace after but not
before, and adverbial colon needs whitespace before but not after?

The reason I ask is that I'm knocking up an intro to Perl 6 for C and C++
programmers.  I expect some of Perl 6's whitespace rules to trip up people
used to C++ (as they have me, in my clumsy attempts with Pugs), and I'd
like to summarise all the whitespace dwimmery in one place.

Many thanks,

Markus


Re: Indirect objects, adverbial arguments and whitespace

2007-10-07 Thread Mark J. Reed
Visually, I interpret :a as a token unto itself, though that's
probably Ruby's fault.  That interpretation would man that the
dual-whitespace version would have to be an indirect object.

I would argue for disallowing the all-jammed-together case, lest we
run into longest-match arguments where foobar:baz is foobar: baz
but foo:barbaz is foo :barbaz.  Yuck.


On 7 Oct 2007 12:22:56 -, Markus Laker
[EMAIL PROTECTED] wrote:
 If I've got this right:

 mangle $foo :a;# mangle($foo, a = 1);
 mangle $foo: a;# $foo.mangle(a());

 So these --

 mangle $foo:a;
 mangle $foo : a;

 are ambiguous and, as far as I can tell from the synopses, undefined.  So
 what's the rule: that indirect-object colon needs whitespace after but not
 before, and adverbial colon needs whitespace before but not after?

 The reason I ask is that I'm knocking up an intro to Perl 6 for C and C++
 programmers.  I expect some of Perl 6's whitespace rules to trip up people
 used to C++ (as they have me, in my clumsy attempts with Pugs), and I'd
 like to summarise all the whitespace dwimmery in one place.

 Many thanks,

 Markus



-- 
Mark J. Reed [EMAIL PROTECTED]


Re: Indirect objects, adverbial arguments and whitespace

2007-10-07 Thread Luke Palmer
On 10/7/07, Mark J. Reed [EMAIL PROTECTED] wrote:
 I would argue for disallowing the all-jammed-together case, lest we
 run into longest-match arguments where foobar:baz is foobar: baz
 but foo:barbaz is foo :barbaz.  Yuck.

Uh, that doesn't make sense.  Longest match arguments are leftmost, so
if you consider the indirect object : to be part of the variable
before it (I wouldn't), then you would always get the foobar: baz /
foo: barbaz interpretation.

I don't know about the all jammed together case, but mangle $foo : a
is not ambiguous because : a is not a pair: there is no whitespace
allowed between the colon and the name on that style of pair.

Luke