On Mon, Aug 23, 2010 at 3:45 AM, Victor Olteanu <[email protected]> wrote:
> Some examples to illustrate this would be very welcome.
>
Any macro is an example of that.
For example, from clojure/core.clj
(defmacro ->
"Threads the expr through the forms. Inserts x as the
second item in the first form, making a list of it if it is not a
list already. If there are more forms, inserts the first form as the
second item in second form, etc."
{:added "1.0"}
([x] x)
([x form] (if (seq? form)
(with-meta `(~(first form) ~x ~@(next form)) (meta form))
(list form x)))
([x form & more] `(-> (-> ~x ~form) ~...@more)))
You can really easily write functions that write programs, as the above ->.
If the AST of LISP were more complicated, this kind of program would
be more complicated.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
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