|
|
|
This illustrates the
syntax we used. Our class specializers are enclosed in angle brackets. The
VisualWorks Smalltalk compiler had a dormant, postfix, bracketed type
recognition facility already built into it. We simply had to turn it on, and
override a few methods to wire in our multimethod facilities. Any “easter
egg” in the compiler, I think they call it…
|
|
|
|
Asymmetric
multimethods are preferentially attached or owned by their primary receiver
classes. Symmetric multimethods are owned by none, or all, depending on how
you want to look at it.
|
|
|
|
As with the
faux-Java example show, our is arguably an “asymmetric” design. Our goal was
to present a symmetric syntax, as CLOS had done, while maintaining (at least
for the time being) asymmetric implementations.
|
|
|
|
(I’d like to have
made it symmetric, but more compiler hacking would need to be done to carry
this off.)
|