LINUX.ORG.RU

История изменений

Исправление 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".

> И где у него там вообще, рекурсия?

Ты ФВП просил.