On Mon, May 14, 2007 at 02:21:47PM -0400, Ryan Richter wrote:
: In Perl 6, the & sigil is used to distinguish between
: foo bar
: which calls bar and passes the return value to foo, and
: foo &bar
: which passes bar as a Code object to foo.

In other words, the sigil is consistently a noun marker in Perl 6,
even when a sigil is used on a verb.  In Perl 6, where sigils
distinguish nouns not only from verbs, but also from adjectives (if
you count types as adjectival).  With a glance you can tell which
are the nouns and which are the types here:

    multi CatDog sub make_catdog (Cat $cat, Dog $dog) {...}
    multi CatDog sub make_catdog (Cat Dog $catdog) {...}

While Gabor is correct that in Perl 5 removing the sigils from verbs
made some verbal collisions happen that otherwise wouldn't have, in
Perl 6 we've mostly fixed that by essentially getting rid of most
reserved words, and making even the builtin functions participate
as normal multis and methods.  For that reason, and because verbs
linguistically tend to be disambiguated by the nouns fed to them as
argements, verbs don't need to be conjugated nearly as badly as nouns
need to be declined.  A lot of nouns typically don't have arguments
to disambiguate them with, at least until you start subscripting them,
and we don't do multiple dispatch on subscripts.

As for the original complaint, we long ago decided to ignore people who
are prejudiced against languages that mark nouns.  Greek wouldn't be
Greek if you couldn't decline your nouns.  (In my estimation, it's
the conjugated verbs that make Greek so difficult to learn, really.
On the other hand, once you learn them they're very expressive in
tense and aspect.  It's all tradeoffs.)


Reply via email to