John Todd wrote:Hey,
Since Clojure is a LISP dialect, does this mean that Clojure doesn't support OOP?
Thanks.
well already there was OOP support in at last
Common Lisp:
Clojure interops directly with
java and you can code clojure on top of its objects and create new classes and instances.
But i think that would go against the
principles of language.
Therefore Clojure have runtime dispatch based on type (like OOP) AND value or metadata with
multimethods
An example taken from that link:
And recently have implemented new forms of abstraction taking the good part of the OOP:
protocols and datatypes
OOP have good and bad things and Clojure only picks the good ones ;-)