On 1 Jun 2010, at 09:18, alux wrote:

So, if you have lazy-eval, there's no need for special-forms.

This is obviousely correct for if / cond.

If you define special forms as in Common Lisp (that's something I learned from this discussion), yes. If you define special forms as I think Clojure does (in fact, I can't find any definition, just a list), then it's not true. With lazy evaluation, "if" could become a plain function, but it would still have to be a built-in function that one could not express in the language itself, unless some other choice primitive or a suitable data structure exists. The notion of a primitive operation always remains.

Looking into the other special forms ( http://clojure.org/ special_forms
), I wouldnt know how to implement all of them. Certainly there is,
unknownst to me, a bunch of literature about (sets of) primitives that
cannot e replaced - literature hints anybody?

For Lisp-like languages, the best starting point is SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html ). For a more in-depth treatment of implementation issues, I'd continue with Christian Queinnec's "Lisp in Small Pieces" (http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiSP.html ).

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
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to