在SICP中,计算对象的精确定义是什么?这是一个价值吗?是一种表达吗?我不太清楚,你能告诉我哪个是正确的意思并解释原因吗?
你能在解释中举几个例子吗?
我试图通过绘制概念图(见下文)来理解SICP中使用的术语,但是我被计算对象的意义所困,因为我无法确定这个术语是指值还是表达式?


编辑:
阅读答案后更新概念图:

发布于 2014-08-19 12:58:25
我认为你在文本中强调的关键是:
编程语言的一个关键方面是它提供了使用名称引用计算对象的方法。我们说,名称标识了一个变量,其值是对象。
“计算对象”是可以作为变量值的任何东西。将它称为“计算对象”(与简单的“对象”相反)可能只是在这里增加了一些混乱,因为从上下文中可以清楚地看到,非计算对象(例如,一张纸)不能是程序中变量的值。不过,也有一些与程序相关的东西不是计算对象。
例如,在Scheme中,变量不是计算对象;您不能将变量存储在另一个变量中。在某些语言中,变量或指针至少是计算对象,可以是变量的值。
在文本中的定义中,我们看到了源代码(即表达式)。计算表达式产生的计算值可以存储在变量中。例如,可以计算表达式(+ 2 3)以生成整数2,该整数被打印为2。但是,值得注意的是,在Lisp语言(更广泛地说,是同音语言)中,源代码也可以表示为一个值。例如,计算表达式(list '+ 2 3)会产生一个名为"+"、整数值2和整数值3的符号列表。该列表以(+ 2 3)格式打印。
那么,我们已经知道了在哪里使用对象,但是实际上存在哪些对象呢?这取决于语言的定义。“计划”的定义指定了某些类型的对象:
其他语言将提供其他类型,并可能提供比我在这里列出的更多。问题是,对象的存在是由语言设计人员决定的,目的是提供足够的原始类型,以便程序员能够根据它们定义所需的任何东西。
发布于 2014-08-19 12:37:55
我认为“计算”一词只是为了区分这些物体和物理物体。在您的概念图中,它可能是“与值相同”。注意,几乎任何东西都可以是一个对象,并且可以在Scheme中进行操作,包括表达式(在宏/元编程中)。
https://stackoverflow.com/questions/25382286
复制相似问题