On Mon, Aug 23, 2010 at 3:45 AM, Victor Olteanu <bluestar...@gmail.com> 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 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