LINUX.ORG.RU

область видимости в CL


0

0

Можно ли как-нибудь для отдельного участка кода в Common Lisp ограничить видимые переменные и функции, так чтобы ему были доступны только заданные мной?

★★★★☆

Самое что первое приходит в голову - создаёшь для этого кода отдельный пэкэдж ну и импортируешь в него только то что нужно.

CrazyPit ★★★
()
Ответ на: комментарий от CrazyPit

Да, но это не спасёт от вызова функции из соседнего...

Хотя из вопроса не совсем ясно, что именно человеку надо. Если запретить _совсем_, то стандартной такой фичи я не знаю. Хотя это не значит, что её ещё нету и уж тем более что это не возможно в принципе :)

yyk ★★★★★
()
Ответ на: комментарий от yyk

> уж тем более что это не возможно в принципе :)

Ну да, на край можно макрос написать:)

(only-with-funcs (func1 func2 func3).....

CrazyPit ★★★
()

Я в ru_lisp задавал этот вопрос недавно. Действительно - читаешь код в отдельный package, переопределив readtable и read-eval (подробнее - см. Hyperspec).

Miguel ★★★★★
()

Надо исполнить кусок кода, попавший из подозрительных источников, и при этом не допустить, чтобы он сделал какую-нибудь каку. Ну типа как java script выполняется.

bugmaker ★★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.