嘿大家所以我正在寻找一种方法将lisp宏转换为在Clojure中工作我看了一些其他帖子,谈论你是否可以转换,但他们真的没有展示一个例子,也许正在寻找一些帮助对此。
(defmacro n-of (n form)
(let ((lst-sym (gensym))
(i-sym (gensym)))
`(let ((,lst-sym ()))
(dotimes (,i-sym ,n)
(push ,form ,lst-sym))
(nreverse ,lst-sym))))
答案 0 :(得分:2)
对于lisp宏,我假设Common Lisp宏。
(defmacro n-of [n & form]
`(let [f# #(do ~@form)]
(take ~n (repeatedly f#))))
&就像和休息或身体一样。 #()是(lambda ...)。 〜@是,@ - 。 '〜'是','。