Именованный 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 .


Комментарии отсутствуют.

Необходима авторизация

Вы должны авторизоваться для создания комментария.

Вход