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
-~----------~----~----~----~------~----~------~--~---

Reply via email to