gpt4 book ai didi

scheme - SICP 术语 : computational object

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

SICP 中计算对象的准确定义是什么?它是一个值吗?是表达吗?我不太清楚,你能告诉我哪个是正确的意思并解释为什么吗?

能否请您在解释中举例说明?

我试图通过绘制概念图(见下文)来理解 SICP 中使用的术语,但我对计算对象的含义感到困惑,因为我无法确定该术语是指值还是表达式?

enter image description here

enter image description here

编辑:

阅读答案后更新概念图:

enter image description here

最佳答案

我认为您在文本中加下划线的关键是:

A critical aspect of a programming language is the means it provides for using names to refer to computational objects. We say that the name identifies a variable whose value is the object.

“计算对象”是任何可以作为变量值的东西。将其称为“计算对象”而不是简单的“对象”可能只是在这里增加了一些困惑,因为从上下文中可能很清楚-计算对象(例如,一张纸)不能是程序中变量的值。不过,有些与程序相关的东西也不是计算对象。

例如,在 Scheme 中,变量不是计算对象;您不能将变量存储在另一个变量中。在某些语言中,至少,变量或指针计算对象,并且可以是变量的值。

在文中的定义中,我们看到了源代码(即表达式)。计算表达式会产生可以存储在变量中的计算值。例如,可以计算表达式 (+ 2 3) 以生成整数 2,它被打印为 2。不过,值得注意的是,在 Lisp 语言中(更一般地,在同形异象语言中),源代码也可以表示为一个值。例如,计算表达式 (list '+ 2 3) 生成名为 "+" 的符号、整数值 2 和整数值 3 的列表。该列表打印为 (+ 2 3)

那么,我们已经了解了对象的使用位置,但实际存在哪些对象呢?这取决于语言的定义。 Scheme 的定义指定了一些类型的对象:

  • 数字(并且有各种类型的数字)
  • 符号
  • 字符串
  • cons cells(这些基本上是成对的,我们使用约定从它们构建列表和树)
  • 空列表
  • bool 值 true 和 false
  • 过程(通常称为函数)
  • 向量和数组

其他语言会提供其他类型,Scheme 提供的可能比我在这里列出的更多。关键是存在哪些对象是由语言设计者决定的,目的是提供足够的原始类型,以便程序员可以根据它们定义他们需要的任何东西。

关于scheme - SICP 术语 : computational object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25382286/

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