Первоклассная среда

Sergey ShishkinSergey Shishkin
1 min read

Фактически, продолжение предыдущей темы “Символы и контексты“, но теперь с акцентом на статью “Первоклассная среда“ (сравните с “Первоклассным контекстом“ …)

“PicoLisp использует динамическое связывание для символических переменных. Это означает, что значение символа определяется текущим контекстом выполнения, а не лексическим контекстом в исходном файле. Это имеет преимущества в практическом программировании. Это позволяет вам писать независимые фрагменты кода как данные , которые могут быть переданы в другие части программы для последующего выполнения как код в этом контексте ...”

То есть, чтобы этого добиться, необходимо, чтобы генерация, активация/деактивация и выполнение контролировать отдельно.

“Окружение представлено списком пар символ-значение. Его можно создать с помощью прямых явных операций lisp или, что более удобно, с помощью функции env … “

“Если окружение предполагается как подмножество текущего окружения, означает что вы просто хотите создать его с текущими значениями …”

“Самый простой способ активировать среду — это пройти по списку и «установить» каждый символ в его значение. Обычно это не рекомендуется, поскольку это не восстановит предыдущую среду после выполнения. В большинстве случаев используются либо «bind», либо «job». Главное различие между этими двумя функциями заключается в том, что job изменяет среду деструктивно, чтобы сохранить измененные значения перед восстановлением предыдущей среды.”

https://picolisp.tiddlyhost.com/#Первоклассная%20среда

https://ryelang.tiddlyhost.com/#Первоклассные%20контексты

0
Subscribe to my newsletter

Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sergey Shishkin
Sergey Shishkin

Всегда чему-то учусь!