Именованный let
«Именованный let» — это вариант let , который имеет вид
(let var bindings body)
<bindings> и <body> такие же, как и в обычном let , но только <var> связана в <body> с процедурой, у которой тело <body> , а имена параметров — переменные в <bindings> . Таким образом, можно неоднократно выполнять <body> , вызывая процедуру по имени <var> . Например, итеративную процедуру для порождения чисел Фибоначчи (раздел 1.2.2) можно переписать при помощи именованного let как,
(define (fib n)
(let fib-iter ((a 1)
(b 0)
(count n))
(if (= count 0)
b
(fib-iter (+ a b) a (- count 1)))))
Измените преобразование let->combination из упражнения 4.6 так, чтобы оно поддерживало именованный let .
Комментарии отсутствуют.