gpt4 book ai didi

lisp - 计算 lisp 中前 n 个数字的总和

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:03 25 4
gpt4 key购买 nike

(defun sum(n)
(cond
((= n 0) 0)
((= n 1) 1)
(T (+ n sum (- n 1)))))

如果我调用 (sum 4) 它应该显示 10 但它给我一个错误:变量 SUM 没有值

最佳答案

Common Lisp 是 Lisp-2,这意味着变量和函数位于不同的命名空间中。

有一个函数 sum,但是没有变量 sum将其用作变量:(+ n sum (- n 1))

您的意图可能是编写 (+ n (sum (- n 1))),递归调用函数 sum:

(defun sum (n)
(cond ((= n 0) 0)
((= n 1) 1)
(T (+ n (sum (- n 1))))))

(如果您想将函数 sum 引用为一个值,例如将其传递给另一个函数,您可以编写 #'sum。)

关于lisp - 计算 lisp 中前 n 个数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com