Может кто-нибудь объяснить: (+2 (если (> ba) ba))? - PullRequest
0 голосов
/ 25 ноября 2018

Начал работать с упражнениями в Структура и интерпретация компьютерных программ , и я застрял на этом в первом наборе упражнений.

a=3
b=4
(+ 2 (if (> b a) b a))

Я посмотрелответ: 6, но, работая сам, я не могу понять, как получить это число.

Может кто-нибудь объяснить?

1 Ответ

0 голосов
/ 25 ноября 2018

Вы можете просто подставить значения, чтобы узнать, что происходит, поэтому ваше выражение

(+ 2 (if (> 4 3) 4 3))

(> 4 3) сравнивает, если 4 больше 3, и, конечно, это так, что становится true

(+ 2 (if true 4 3))

(if true 4 3) оценивается как 4, если условие истинно, иначе 3, поэтому в этом случае мы получаем 4, что оставляет

(+ 2 4), который просто добавляет 2 и 4, что6

...