Hi everyone, I recently discovered Clojure (largely by accident) and investigated a bit by reading the on-line material and playing around with simple expressions (I have used other Lisps in the past, but never seriously). I am quite impressed with what I have seen - this looks like the first Lisp I might be willing to use in real life.
However, there is one point that is not clear to me: how does Clojure deal with data types in general, and abstract data types in particular? How would one implement a library for tree operations, a graph library, or a numerical library for operations on complex numbers? In OO languages, one would uses classes and interfaces for that. In functional languages of the ML family, one would use algebraic data types and modules/packages to hide a particular implementation. In standard Lisps, everything would be represented by cons nodes, with little to no abstraction. Clojure knows about abstractions and interfaces, but all I have seen until now is the use of interfaces on the client side, with data types already implemented. I can also see how one would implement classes and interfaces in Java and use them from Clojure. But who would one define interfaces and concrete implementations in Clojure itself? Greetings from Paris, Konrad. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---