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 ;-)