14
아래 코드는 예상대로 동작하지 않습니다.clojure에서 두 함수를 정의하는 매크로를 만드는 방법
; given a function name, its args and body, create 2 versions:
; i.e., (double-it foo []) should create 2 functions: foo and foo*
(defmacro double-it
[fname args & body]
`(defn ~fname ~args [email protected])
`(defn ~(symbol (str fname "*")) ~args [email protected]))
위의 코드는 내가 예상 한대로 두 가지 기능을 생성하지 않습니다. 마지막 것만 생성합니다.
user=> (double-it deez [a b] (str b a))
#'user/deez*
어떻게 하나의 매크로로 두 가지 기능을 정의 할 수 있습니까?