术语"程序"术语"操作"的同义词在SICP或不? (例如,在下面的章节中。)如果它们不相同,有什么区别和原因?
更具体地说,"复合操作"之间的区别是什么?和"复合程序" ?有没有 ?
SICP Chapter 1.1.4 Compound Procedures
以下是本书的其他相关章节:
SICP Chapter 1.2 Procedures and the Processes They Generate
在我看来,在这些情况下,术语"操作"在SICP中指的是算术运算(因为到目前为止,没有其他类型的操作 - 无论它们通常是什么 - 都用在了例子中。)
答案 0 :(得分:5)
一个“操作”,无论是原始的还是复合的,都是一些像加法的实际计算,比如在编译程序的汇编代码中,就像一个数字是一个实际的计算对象,一个计算机存储器中的实体。
“过程”是编程语言的一部分,它表达/描述操作。编程语言允许我们定义表达一些基本操作的过程,并通过组合它们来实现一些更复杂的操作:
(define (sum x y) (+ x y)) ; a procedure expressing primitive operation
(define (sum-squares x y) ; a procedure describing a more complex operation
(+ (* x x) (* y y))) ; defined by means of combining the operations
答案 1 :(得分:1)
数字和算术运算是原始数据和程序。
我如何阅读这是NUM映射到原始数据和算术操作映射到过程。因此,操作就是程序。
在(* 2 3)
之类的组合中,*
称为运算符,而2
和3
称为操作数(参数)。操作员是一个程序。
稍后他们会介绍条件(cond
,if
)但从不称它们为操作。