2

我对此比较困惑。

它们之间的关系是什么(例如,如何在另一个上下文中使用一个)?非常感谢!!

4

3 回答 3

3

是你要找的吗?

符号基本上只是一个具有四个字段的对象:

  • 一个名字(一个字符串),
  • 一个值(一些 Lisp 对象),
  • 一个函数(一些 Lisp 对象),以及
  • 属性列表(通常是交替的关键字/值对的列表)。

符号的特殊之处在于通常只有一个符号具有给定名称,并且该符号由名称引用。这使得符号成为一种通过名称调用数据(即实现变量)的便捷方式。(变量的值存储在值槽中。)

类似地,函数是按名称引用的,函数的定义存储在符号的函数槽中。这意味着可以存在同名的不同函数和变量。

属性列表用作将附加值与特定名称相关联的更通用机制,并且名称空间再次独立于函数和变量名称空间。

于 2008-10-29T07:40:26.120 回答
1

简单地说,变量是符号和值之间的绑定。符号是变量的名称。当评估绑定符号(即变量名)时,返回变量值,

您也可以使用不是变量的符号,即。未绑定到值的名称。但是,您无法评估未绑定的符号。

在 Lisp-2 中,符号可以同时绑定到值和函数,上下文定义评估符号的结果是值还是函数。

于 2008-10-29T07:59:28.593 回答
0

符号的概念有点难以理解。(即使我不确定我明白了:))

您可以将符号视为行为类似于常量的特殊变量。内存中只有一个实例,无论您使用它的频率如何。

好处是节省内存,并且可以查看一个值是否以类似常量的方式使用。(提高代码可读性)

您可以在 C/C++ 中使用、在 Java 中使用或在 Delphi/Pascal/VB 中使用来做类似的事情,但要小心,在这些语言和许多其他语言中,“符号”意味着不同的东西。typdefstatic finalconst

于 2008-10-29T07:36:00.247 回答