gpt4 book ai didi

variables - LISP:将变量/符号传递给函数而不评估

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

我有一个函数和 2 个变量,看起来像这样:

 (setq A '(A B))

(setq B '(A B))

(defun myFunc (var1 var2)
(if (equal var1 var2)
'TRUE
'FALSE))

>>> (myFunc A B)

我的问题是我希望 Lisp 按字面意思比较变量 NAMES。所以在上面的函数中,我希望它的计算结果为 FALSE,因为 A != B,即使它们的“内容”相同。问题是当变量被传递时,它们似乎会立即被评估,所以当我们到达条件时,它们的内容会被检查是否等价。

我阅读了一些关于 apply 的内容,这似乎很有帮助,但我似乎无法理解它是如何使用的。 http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node81.html

任何帮助将不胜感激。谢谢!

最佳答案

这是不可能的 - lisp 是 eager .

您必须传递变量名称(引用它们):

(myFunc 'A 'B)
==> NIL

或使用宏。

关于variables - LISP:将变量/符号传递给函数而不评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16381525/

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