评估组合以递归解决(+1 2)

结石

我正在阅读SICP的第一章

1.1.3评估组合

它指出

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对应的数字。

因此,您有一个运算符和两个数值。第二步说,您必须将运算符(最左边的值)应用于两个数字:换句话说,必须将sum运算符应用于1和2,以便获得数字3。然后过程终止。

请注意,此计算中没有中间状态。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

1 == 2 == 2如何评估?

您能帮我解决递归关系T(1)= 5,并且对于所有n> = 2,T(n)= 2T(n-1)+(3 * n + 1)

如何解决递归T(n)= T(n / 2)+ T(n / 4),T(1)= 0,T(2)= 1是T(n)=Θ(n lgφ),哪里是黄金分割率?

1 + 2的所有组合加到n

使用同一泰勒级数评估log(1 + x)的递归

为什么语句[1,2] <[2,1]在python中评估为True

为什么(1 == 2!= 3)在Python中评估为False?

(a == 1 && a == 2 && a == 3)可以评估为真吗?

(a == 1 && a == 2 && a == 3)可以评估为真吗?

为什么“ range(2)== True中的1”评估为False?

T(0) = 1, T(1) = 0, T(n ) = 2* T(n-2) 的递归关系

如何写2 ** n-1作为递归函数?

使用递归的range(1,n,2)值的总和

Python将2个向量(shape(1,10,1)数组合并为矩阵(shape(2,10,1)

如何使用对的所有可能组合(+-1,+-2)进行循环

Ctrl + 1和Ctrl + 2键组合不起作用

查找1和2的所有组合,总计N

在1个查询中组合2个逻辑SQL语句

关于 1x2 卷积和组合梯度

如何组合 2 个 sql 查询以获得 1 个结果

ProjectEuler Q2:Haskell解决方案无法评估

如何递归求解T(n)= 5T(n / 2)+ n ^ 2,T(1)= 2

Prisma2:如何使用Paljs解决n +1问题

Teradata SQL - 如果条件 A1 然后评估条件 b1...对于 A1,A2,A3

如何解决递归T(n)= T(n-1)+ ... T(1)+1?

递归关系的时间复杂度:T(n) = nT(n^1/2)+ O(1)

SOX:安装libmad make [1]:*** [所有递归]错误1&make:*** [所有]错误2

与主定理T(n)= T(n ^(1/2))+ 1有关的递归

如何解决该递归T(n)= T(n − 1)+ lg(1 + 1 / n),T(1)= 1?