Добавить letrec в ядро интерпретатора Racket
2 000 руб. за проект
Добавьте letrec в ядро интерпретатора. Вычисление выражения
(letrec ([f1 (lambda params1 body1)]
...
[fn (lambda paramsn bodyn)])
body)
в окружении env состоит из следующих шагов.
x в окружении env. Если x в env связана с задумкой t = (f, params, body, env1),
то значением x является результат вычисления t в окружении env1.
(letrec ([f1 (lambda params1 body1)]
...
[fn (lambda paramsn bodyn)])
body)
в окружении env состоит из следующих шагов.
1) Для каждого i сформировать задумку ti = (fi, paramsi, bodyi, env).
2) Создать кадр, где переменные fi связаны с задумками ti .В качестве объемлющего окружения указать env.
3) В полученном окружении вычислить выражения (lambda paramsi bodyi). Обозначим их значения через vi.
4) Создать кадр, где переменные fi связаны со значениями vi. В качестве объемлющего окружения указать env.
5) В полученном окружении вычислить body.
x в окружении env. Если x в env связана с задумкой t = (f, params, body, env1),
то значением x является результат вычисления t в окружении env1.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.