gpt4 book ai didi

lisp - Common Lisp 未绑定(bind)变量

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

是否可以使用未初始化的变量作为函数参数?对于一项作业,我必须使用 CLOS 编写语义网络系统,我的教授包括一个测试函数来测试我们的输出,其中一个指定:

(print (def-concept Human)),

这意味着将参数 Human 传递给函数 def-concept。运行此测试函数时,我无法摆脱错误(在 Allegro CL 中):

错误:尝试获取未绑定(bind)变量的值HUMAN'。`

由于这是测试中的第一个函数,因此在此之前没有初始化任何变量。有什么方法可以避免将未初始化的变量作为函数的参数传递?

提前致谢。

最佳答案

在常规的 Common Lisp 函数调用中,不可能使用未初始化的值作为函数参数。 Common Lisp 使用急切求值:参数表达式在函数调用发生之前缩减为它们的值。

我怀疑您可能没有完全理解家庭作业的结构。

如果 def-concept 是一个需要一个值的函数,而 human 没有定义,那么您根本无法测试该函数。

也许您需要定义变量human,然后加载包含(print (def-concept human)) 的文件。

仅仅因为在同一个文件中该表单之前没有任何内容并不意味着不可能进行事先评估。可以在该文件之前加载其他文件,或在监听器中评估表单。

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

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