Norvig's 1996 Design Patterns Presentation
Peter Norvig (now Google's "Director of Search Quality") was at Harlequin then.
Harlequin sold the only commercial version of Dylan, and then later changed
their name to the terrible
This 1996 presentation shows, with code examples, how one can
recast many of the GOF Design Patterns into a dynamic language with
multi-methods, and many of the "patterns" either become invisible or
are very much simplified.
Sidetrack: terminology rant:
Lisp fans tend to mention multi-methods and claim that this makes
CLOS "more object-oriented" than languages without multi-methods.
I agree that languages with multi-methods are clearly more powerful
than languages without; but I strongly disagree that this makes them
"more object-oriented". The "object.method(...)" syntax (or [object method ...]
in Smalltalk and Objective-C) is one of the more important factors in
seeing a program as being object-oriented, and that syntax isn't usable
with multi-methods. I haven't seen a language with multi-methods that
has an object-oriented syntax for them. CLOS is generic-function-oriented.
It is more powerful than single-dispatching languages. But it is not more