gpt4 book ai didi

arrays - Lisp 变量未绑定(bind)

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

我正在尝试创建一个函数,在输入 7 个值后,将它们放入一个数组中,然后从该数组中将每个元素添加到另一个变量 (avg)。

我不断收到“变量 AVG 未绑定(bind)”。我看不出问题出在哪里。

(defun readTestScores()
(let ((examScore 0)
(avg 0)))
(setf testScore (make-array 7))

(format t "~&ENTER EXAM SCORE ~23T: ")
(setq examScore(read))

(format t "~&ENTER ALL TEST SCORES ~23T: ")
(dotimes (i 7)
(setf (aref testScore i) (read))
)

(dotimes (i 7)
(setq avg (+ avg (aref testScore i)))
)
)
(readTestScores)

最佳答案

您对 let 的使用不正确。应该是:

(let ((examScore init-value)
(avg 0))
let-body)

这样您就可以声明并初始化两个局部变量,其中 examScore 将被初始化为 init-value但是,您已经声明了 examScore 并将其初始值定义为 (avg 0),这将是调用函数 的结果avg 参数值为 0。avg 函数可能未定义,因为这不是您的意图,因此是未绑定(bind)的消息。

关于arrays - Lisp 变量未绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49836231/

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