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

Фактически, продолжение предыдущей темы “Символы и контексты“, но теперь с акцентом на статью “Первоклассная среда“ (сравните с “Первоклассным контекстом“ …)
“PicoLisp использует динамическое связывание для символических переменных. Это означает, что значение символа определяется текущим контекстом выполнения, а не лексическим контекстом в исходном файле. Это имеет преимущества в практическом программировании. Это позволяет вам писать независимые фрагменты кода как данные , которые могут быть переданы в другие части программы для последующего выполнения как код в этом контексте ...”
То есть, чтобы этого добиться, необходимо, чтобы генерация, активация/деактивация и выполнение контролировать отдельно.
“Окружение представлено списком пар символ-значение. Его можно создать с помощью прямых явных операций lisp или, что более удобно, с помощью функции env … “
“Если окружение предполагается как подмножество текущего окружения, означает что вы просто хотите создать его с текущими значениями …”
“Самый простой способ активировать среду — это пройти по списку и «установить» каждый символ в его значение. Обычно это не рекомендуется, поскольку это не восстановит предыдущую среду после выполнения. В большинстве случаев используются либо «bind», либо «job». Главное различие между этими двумя функциями заключается в том, что job изменяет среду деструктивно, чтобы сохранить измененные значения перед восстановлением предыдущей среды.”
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
Всегда чему-то учусь!