我正在看SICP的第一章
它指出
To evaluate a combination, do the following:
1. Evaluate the subexpressions of the combination.
2. Apply the procedure that is the value of the leftmost subexpression (the operator) to the arguments that are the values of the other subexpressions (the operands).
假设一个组合 (+ 1 2)
根据上述算法,
首先是评估(检索)+ 1 和 2)
第二种是对1应用+(存储中间状态)
第三个是再次评估(检索)中间状态和2。
第四是将中间状态应用到2。
是吗?
+1
的中间状态是什么?
最佳答案
表达式 (+ 1 2)
是由原始表达式组成的组合:+
、1
和 2
.
第一步是计算所有子表达式。在这种情况下,它们分别是执行数字求和的运算符,以及分别对应于数字 1 和 2 的数字。
所以您有一个运算符和两个数值。第二步说你必须将运算符(最左边的值)应用于这两个数字:换句话说,你必须将求和运算符应用于 1 和 2,以便获得数字 3。过程终止。
请注意,此计算中没有中间状态。
关于scheme - 评估组合以递归处理 (+ 1 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58562817/