(def foo ->) は失敗します. Clojure で内部 DSL を作っているときなど clojure.core のマクロに別名をつけたい場合があります.そんなときに def を使って,(def foo ->) とすると, user=> (def foo ->) CompilerException java.lang.RuntimeException: Can't take value of a macro: #'clojure.core/->, compiling:(NO_SOURCE_PATH:1)