Именованный 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
.
Комментарии отсутствуют.