в первом l oop при вызове sum([2, 3, 4, 5], 3)
, тогда ваша функция возвращает следующее sum([2,3,4,5], 2) + 4
во втором l oop при вызове sum([2, 3, 4, 5], 2)
(который был возвращен в первый l oop), затем ваша функция возвращает следующее sum([2, 3, 4, 5], 1) + 3
в третьем l oop, когда вы вызываете sum([2, 3, 4, 5], 1)
(который был возвращен во втором l oop), затем ваш функция возвращает следующее sum([2, 3, 4, 5], 0) + 2
в четвертом l oop при вызове sum([2, 3, 4, 5], 0)
(который был возвращен в третьем l oop), тогда ваша функция возвращает следующее 0
так эффективно, как будто вы возвращаетесь 0 + 2 + 3 + 4