Skip to content

Instantly share code, notes, and snippets.

@vsnguyen
Last active August 29, 2015 14:21
Show Gist options
  • Save vsnguyen/3c61368e636f039c595d to your computer and use it in GitHub Desktop.
Save vsnguyen/3c61368e636f039c595d to your computer and use it in GitHub Desktop.
Clojure: Macro
;; defmacro
;; only run at compile time
;; Simple
(defmacro unless [condition expression]
(list 'if condition nil expression))
(unless (> 2 3) true)
;; (if (> 2 3) true nil)
;; Multiple Expressions
(defmacro unless
([condition expression]
(list 'if condition nil expression))
([condition expression-1 expression-2]
(list 'if condition expression-1 expression-2)))
(unless (> 2 3) true false)
;; (if (> 2 3) true false)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment