diff options
Diffstat (limited to 'clojure-macros.html.markdown')
-rw-r--r-- | clojure-macros.html.markdown | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/clojure-macros.html.markdown b/clojure-macros.html.markdown index 8e671936..3864f676 100644 --- a/clojure-macros.html.markdown +++ b/clojure-macros.html.markdown @@ -99,17 +99,17 @@ You'll want to be familiar with Clojure. Make sure you understand everything in (list x) ; -> (4) ;; You can use # within ` to produce a gensym for each symbol automatically -(defmacro define-x-hygenically [] +(defmacro define-x-hygienically [] `(do (def x# 2) (list x#))) (def x 4) -(define-x-hygenically) ; -> (2) +(define-x-hygienically) ; -> (2) (list x) ; -> (4) ;; It's typical to use helper functions with macros. Let's create a few to -;; help us support a (dumb) inline arithmatic syntax +;; help us support a (dumb) inline arithmetic syntax (declare inline-2-helper) (defn clean-arg [arg] (if (seq? arg) @@ -131,7 +131,7 @@ You'll want to be familiar with Clojure. Make sure you understand everything in ; However, we'll need to make it a macro if we want it to be run at compile time (defmacro inline-2 [form] - (inline-2-helper form))) + (inline-2-helper form)) (macroexpand '(inline-2 (1 + (3 / 2) - (1 / 2) + 1))) ; -> (+ (- (+ 1 (/ 3 2)) (/ 1 2)) 1) @@ -142,11 +142,11 @@ You'll want to be familiar with Clojure. Make sure you understand everything in ### Further Reading -Writing Macros from [Clojure for the Brave and True](http://www.braveclojure.com/) +Writing Macros from [Clojure for the Brave and True](http://www.braveclojure.com/) [http://www.braveclojure.com/writing-macros/](http://www.braveclojure.com/writing-macros/) -Official docs +Official docs [http://clojure.org/macros](http://clojure.org/macros) -When to use macros? +When to use macros? [http://dunsmor.com/lisp/onlisp/onlisp_12.html](http://dunsmor.com/lisp/onlisp/onlisp_12.html) |