Мм
Не разбирам за какво искаме a да е по-малко от b?
според мен това пита
(и да, пропуснал е, че всъщност a<
=b)
Идеята му беше, че можем да сумираме числата от 1 до 5, но можем и да сумираме числата от 5 до 1, защо в кода, който са дали като решение е задължително да вървим от по-малкото до по-голямото, т.е защо да решението да не позволява (sum-int 5 1).
Условието не е изчистено като дефиниция, най-вече защото е някакво примерче. Не знам защо са решили да го озаглавят "процедури като параметри", но тъй като гледам какви са примерите, все за обикновена (пряка) рекурсия става въпрос.
ПС. Иначе, когато изрично сме казали, че не трябва първият аргумент да е по-голям от втория, в
този код наистина дъното на рекурскията е при a>b, а не при a=b, защото иначе ще зацикли - (sum-int 5 1) = (+ 5 (sum-int 6 1)) =...