[this is a work in progress. -- rgr, 3-Apr-05.]
| Perl6 name | Lisp name | Definition |
|---|---|---|
| attribute | slot | These are state variables. Both languages support a choice of class or instance scope for a given attribute/slot. |
| long name | method name | This is how methods are named, and is composed of the short or GF name plus the list of specializers (called the signature in Perl6). |
| multisub | generic function | This is how a program invokes multiple-dispatch methods; in both languages, it looks like an ordinary subroutine call. |
| next | call-next-method | Within a method, this calls the next applicable method. [is it possible to change the arglist in perl6? -- rgr, 3-Apr-05.] |
| short name | generic function name | This is the name invoked by the caller. |
| ?? | specializer | The restricted type of a multimethod argument, which is said to be "specialized to that type. |
Multiple dispatch is found in Common Lisp [Steele Jr. 1990, Paepcke 1993], Dylan [Shalit 1997, Feinberg et al. 1997], and Cecil [Chambers 1992, Chambers 1995].However, this is less relevant since Java is statically typed. Interestingly, MultiJava makes the language more dynamic by introducing open classes. [Maya is another such system; I find it amusing that there is such a huge literature devoted to making Java less broken. -- rgr, 19-Jun-05.]