gpt4 book ai didi

variables - 口齿不清;符号和全局变量

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

我的作业有一些问题。我的目标是创建代表学生姓名、姓氏以及他们的入学编号(属性列表)的符号。我还为我创建的所有学生使用了一个全局变量。

我的代码是这样的:

(defun student-create (firstName lastName matr)
(setq newStudent (gensym "studentNr."))
(setf (get 'newStudent 'firstName ) firstName )
(setf (get 'newStudent 'lastName ) lastName)
(setf (get 'newStudent 'matr ) matr)
;(append (list newStudent)*stu-liste*) ;no global list?
)

(student-create 'asdf 'dfgh '132654)
(student-create 'a 'b '123)
(student-create 'c 'd '234)
(student-create 'e 'f '345)

这就是我想用来创建学生的功能。我输入名字和姓氏以及入学编号。

它适用于符号 newStudent,但如您所见,该函数并不是那么动态。每次我使用该函数时,newStudent 都会被覆盖。 另外,我在将所有符号保存在全局变量中时遇到问题。

有人可以给我提示吗?

最佳答案

newStudent 在您的代码中被视为全局变量,这就是每次调用 student-create 时都会覆盖它的原因。您应该使用这些知识重新考虑如何将学生列表(或任何数据结构)存储到全局变量中。

您在 student-create 中想要的是每次调用函数时生成的符号的新本地绑定(bind)。您可以使用 let为此目的。

其实这个作业很像the example for get in the CLHS ...

关于variables - 口齿不清;符号和全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43706210/

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