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