【发布时间】:2019-05-10 20:57:41
【问题描述】:
我是 Common Lisp 的新手,正在尝试从 Clojure 实现 repeatedly。例如
(repeatedly 5 #(rand-int 11))
这将收集 5 个 (rand-int 11) 调用,并返回一个列表:
(10 1 3 0 2)
目前,这就是我正在做的事情:
(defun repeatedly (n f args)
(loop for x from 1 to n
collect (apply f args)))
看起来不太好,我必须这样称呼它:(repeatedly 5 #'random '(11))。有没有办法让函数更直观,就像 Clojure 的语法一样?
然后代码会变得很丑:(repeatedly 5 #'function (list (- x 1)))。
【问题讨论】:
标签: clojure lisp common-lisp