Luke Palmer skribis 2006-08-31 15:48 (-0600):
> > I don't think using a method (even if called "s") is good huffman
> > coding. My expectation is that copying substitution will be used much -
> > perhaps even more than mutating substitution!
> And so a method called "s" is poor huffman coding... why? (I do agree
> with your frequency conjecture)

Because of the awkward syntax that goes with a method: two parens, four
delimiters, comma[s]?.

    .s(/bar/, "baz");  # 20 keypresses on a US keyboard

While a postfix operator, with the same ".s" feel, could allow
    
    .s/bar/baz/;       # 12 keypresses on a US keyboard

And since it's something used a lot in expressions, you wouldn't use the
parenless form of the method call much.

We need a quotelike construct for this form of s/// for exactly the same
reason we need it for m// and the other s///. Our language deviates too
much from being Perl if we had only method forms.

    $foo.match(/foo/);
    $foo.subst(/foo/, "bar");
    $foo.=subst(/foo/, "bar");
    
That just isn't Perlish, at all.

My suggestion for a s/// postfix op mainly stems from this argument, but
I really also believe that ~~ and s/// is a farfetched combination. Perl
5's =~ was a binding operator, and s/// fit right in. But Perl 6's ~~ is
a matching operator, and in my opinion should remain pure, and so: not
mutate.

I'm even a bit inclined to suggest that .m// should return matches,
while ~~m// should return a bool. But ignore that for now :)


Juerd
-- 
http://convolution.nl/maak_juerd_blij.html
http://convolution.nl/make_juerd_happy.html 
http://convolution.nl/gajigu_juerd_n.html

Reply via email to