Common lisp 多次运行函数的Lispy方法

Common lisp 多次运行函数的Lispy方法,common-lisp,Common Lisp,我正在使用函数d生成随机数,我在列表中收集这些随机数,然后对它们进行平均: (/ (apply #'+ (list (d 6) (d 6) (d 6) (d 6) (d 6) (d 6))) 6.0) 我想运行函数(dn)I次,将返回值相加,然后除以Idotimes不返回值。在Common Lisp中我该如何做到这一点?IRC上一位非常善良的灵魂给了我这个解决方案: (循环重复6次收集(D6)) dotimes不返回值 它是: CL-USER 21 > (let ((sum 0))

我正在使用函数
d
生成随机数,我在列表中收集这些随机数,然后对它们进行平均:

 (/ (apply #'+ (list (d 6) (d 6) (d 6) (d 6) (d 6) (d 6))) 6.0)

我想运行函数
(dn)
I
次,将返回值相加,然后除以
I
dotimes
不返回值。在Common Lisp中我该如何做到这一点?

IRC上一位非常善良的灵魂给了我这个解决方案:

(循环重复6次收集(D6))

dotimes不返回值

它是:

CL-USER 21 > (let ((sum 0))
               (dotimes (i 10 sum)        ; <- sum is the return value
                 (incf sum (random 10))))
45
CL-USER 21>(let((和0))

如果你在“1小时前”发布了一个问题,并且能够在“59分钟前”发布一个答案,看起来您可能没有完成通常预期会出现的堆栈溢出问题的所有研究。例如,请参阅。正如Rainer指出的,dotimes返回一个值,并且在文档中非常清楚地说明了这一点。我在Google上搜索过,但无法正确定义搜索词。我在IRC上询问过,但没有二十分钟后回复。我已经浏览了内联文档,但找不到任何内容(因为无法定义搜索词)。然后我把它贴在了网站上,当IRC上一个优秀的家伙突然出现并给了我一个答案时。为了社区的利益,我想我应该在这里分享这个答案。我尝试了
dotimes
,但没有得到任何回报(我显然做错了).我没有写日记并不意味着我没有做任何研究。
CL-USER 21 > (let ((sum 0))
               (dotimes (i 10 sum)        ; <- sum is the return value
                 (incf sum (random 10))))
45