> 1. Not a good way to READ from a string,

(read (PushbackReader. (StringReader. my-string)))

> I've noticed functions can only refer to those previously defined, so you 
> couldnt have 2 that depend on one another

This is because symbols are looked up at compile time. So what you can do is

(def f)

(defn g [x] (+ 1 (f x)))

(defn f [x]
  (if (= x 0)
    0
    (g (- x 1)))

(g 4) => 4

It would be fairly easy to whip up a macro that handles this more neatly:

(def-rec f g
  (defn g [x] (+ 1 (f x)))
  (defn f [x] (* x x)))

> What are you doing with Clojure?

Writing a scriptable notetaking app for my tablet, as all the existing
apps turn it into a very expensive pad of paper.

mzscheme has a neat module system (
http://docs.plt-scheme.org/guide/units.html ) that handles mutual and
cyclic dependencies between modules. I'm slowly porting this to
clojure, the only real difficulty being fitting it in neatly with the
namespace system.

> What 3 features would you most like to see added next?

I'll echo better compiler errors. The runtime error reporting is
pretty good but the compile time errors are useless.

I'd also like to control how my datastructures are printed, maybe by
making print a multimethod dispatching on something like (or (:type
^obj) (class obj)). I think thats fairly vital for building new
abstractions on top of the existing types.

And eventually I would like a contract library, to help me get off the
static typing crack. I may have a shot at it when I've finished my
current side project.

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