David Green writes:
> In article <[EMAIL PROTECTED]>,
> [EMAIL PROTECTED] (Larry Wall) wrote:
> >Maybe type parameters are just subscripts? [...]
> > my Fight %fight does key{Dog;Cat};
>
> I like that.
Yeah, me too. Except I'm having trouble seeing how key is a role. It's
not adding anything into a hash; it's changing it. Maybe I just don't
quite grok roles yet.
>
> >But if English-like is the criterion that'd still read better as
> > my Fight %fight has key{Dog;Cat};
>
> I like that even better.
>
> >Maybe "has" and "does" are just synonyms, and you can use
> >whatever makes more grammatical sense. But pretty much every time
> >I've introduced synonyms into Perl I've come to regret it. But hey,
> >if I introduce *different* synonyms this time, does that count as
> >making a new mistake?
Yeah, that's true. But, on the other hand, "has" seems to have quite a
lot to do with roles:
class Foo {
has $.bar; # compose in a .bar() method
}
Then you can think of a class as an elementary decomposition of roles.
That's algebralicious. (And its one of those things I can imagine not
seeing the potential in until someone does something Profound with it).
> >Well, there's always "domain" and "range", if we want to be
> >mathematical.
>
> I'm happy with those too (perhaps because I do want to be a bit
> mathematical).
Remember what happened last time you gave something a mathematical name
that was wrong? Yeah, vector ops. And then everyone (read: me) carped
about them not being vector anything.
What you want here is "domain" and "codomain". Which leads me to
believe that you don't want either.
Luke