开始完成《计算机程序的结构和解释》中的练习,而我在第一组练习中一直坚持这一练习。
a=3
b=4
(+ 2 (if (> b a) b a))
我已经找到了答案:6但是我自己解决这个问题,我不知道如何获得这个数字。
有人可以解释吗?
答案 0 :(得分:7)
您可以简单地替换值以找出正在发生的事情,因此您的表达式是
(+ 2 (if (> 4 3) 4 3))
(> 4 3)
比较4是否大于3,当然它是true
(+ 2 (if true 4 3))
(if true 4 3)
如果条件为true,则求值为4,否则为3,因此在这种情况下,我们得到4个叶子
(+ 2 4)
仅添加2和4,即6