gpt4 book ai didi

common-lisp - 为什么 Common Lisp 在没有引号的情况下对符号进行评估?

转载 作者:行者123 更新时间:2023-12-03 22:49:37 24 4
gpt4 key购买 nike

我习惯了 Racket,我正在努力学习 Common Lisp。在 Racket 中,符号对自身进行评估,如 Dr Racket 的 REPL 所示:

> 'racket
'racket
根据文献,在 Common Lisp 中,符号也会对自身求值。
实际上,引用对象的评估规则是:

A quoted object evaluates to the object itself, without the quote.


在使用 REPL(Common Lisp、SBCL 和 Slime)时,我得到:
> 'common-lisp
common-lisp
我觉得我需要接受有关两种语言设计之间对比的教育。
为什么会这样?考虑到 CL 的设计作为一种语言,这样做有什么意义?
我是否错过了 CLOS 的深刻内涵?
我仍在为在不久的将来更好地理解 CLOS 打下基础。
谢谢

最佳答案

TL;DR:这与 Common Lisp 无关。这就是 DrRacket REPL 的工作原理。你不能用 Racket 来学习 CL
Racket 博士 REPL 与 #lang racket作为语言和未更改的选项 不会在交互窗口中为您提供结果 .它的作用是打印一个相等的表达式,该表达式的计算结果也相同。设计 Racket 的团队认为这在学习过程中更容易,但由于这些问题,我倾向于不同意。
标准 Racket 评估 'common-lispcommon-lisp因此,让表达式对其求值的一种方法是引用它,使其显示 ' common-lisp在 REPL 中。
它与一个以 16 为基数显示数字而另一个以 10 为基数的实现几乎相同。结果 B 和 11 是相同的,只是可视化不同。
您可以在 Dr Racket 中的语言选项中更改输出格式以获得实际值。某些语言,例如标准方案报告方案已经具有此功能。

关于common-lisp - 为什么 Common Lisp 在没有引号的情况下对符号进行评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67560334/

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