在常见的lisp中,我可以将多个defun
放置在同一个闭包中,并让它们具有所有设置的功能。如何将此代码从常见lisp转换为clojure
(let ((number 0))
(defun get-number() number)
(defun set-number (arg) (setq number arg)))
如果我在clojure中使用相同的语法,只有最后一个函数最终得到定义。
(let [ number 0 ]
(defn get-number [] number)
(defn set-number [ arg ] (def number arg)))
有没有办法将此代码转换成clojure,以便您有权访问这两个函数?
你可以在LET中使用DEFUN Common Lisp,但我通常不会推荐它。 DEFUN不再是LET中的顶级表单,它在编译时有轻微的缺陷。 – 2012-07-22 02:11:30
@RainerJoswig - 谢谢,我不知道。 – zellio 2012-07-22 02:16:15