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