gpt4 book ai didi

lisp - CLISP 中的意外评估结果

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

我运行了以下 CLISP 代码,但结果对我来说很奇怪。

(setq a 'b)
(setq b 'c)
(setq c 'd)
(setq d 8)
(eval a)
(eval c)
(eval (eval a))

最后三行的输出是:

C

8

D

我如何理解输出?

最后两行怎么会有不同的输出?

请帮忙解释一下,非常感谢!

最佳答案

评估(eval c)

  1. 获取变量c的值 -> 符号D
  2. 使用符号 D 调用 EVAL -> 数字 8

评估(eval (eval a))

  1. 获取变量a的值 -> 符号B
  2. 使用符号 B 调用 EVAL -> 符号 C
  3. 使用符号 C 调用 EVAL -> 符号 D

Lisp 的一些基本求值规则

  • 一个符号计算出它的值
  • 一个数字对自己求值
  • 列表 (foo-function arg) 首先计算参数,然后调用函数 foo-function 用该计算的参数
  • 列表(引用某事)按原样返回某事(无论它是什么)

关于lisp - CLISP 中的意外评估结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51982882/

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