История изменений
Исправление monk, (текущая версия) :
Я не понял из этого обрывка ничего. Приведи полностью.
(define (fact n) (foldl * 1 (in-range n)))
foldl — выполняет переданную функцию для начального элемента с первым элементом списка, затем результат со вторым элементом, и т. д.
* — перемножает два числа
in-range — возвращает список от 1 до n
Таким образом fact = «перемножить числа от 1 до n».
И где у него там вообще, рекурсия?
Ты ФВП просил.
Исходная версия monk, :
Я не понял из этого обрывка ничего. Приведи полностью.
(define (fact n) (foldl * 1 (in-range n)))
foldl -- выполняет переданную функцию для начального элемента с первым элементом списка, затем результат со вторым элементом, и т. д.
* -- перемножает два числа
in-range -- возвращает список от 1 до n
Таким образом fact = "перемножить числа от 1 до n".
> И где у него там вообще, рекурсия?
Ты ФВП просил.