LINUX.ORG.RU

Scheme - делаем пространства имён


0

0

Доброго всем!

Привык к CL, а тут, похоже, придётся осваивать Scheme.

Вопрос следующий. Имеется chicken. Можно ли сделать средствами самого языка пользовательские пр-ва имён?

Мне кажется, что да. В chicken есть define-macro, значит, вроде бы получается, что можно. Определяем макрос "with-namespace", который принимает произвольное дерево, ходит по всем символам и делает замену. REPL подменяем своим, функции read и print - тоже. Сами пр-ва имён моделируем с помощью хеш-таблиц.

Соответственно, функцию print придётся тоже переписать, аналогичным образом.

Естественно, нужно не просто продемонстрировать возможность, а чтобы с этим можно было нормально работать. Обычно так бывает, что когда добавляешь какую-то фишку, при этом отваливается что-то, что раньше работало. У кого есть какие соображения на этот счёт? Может быть, кто-то это уже сделал?

★★★★★

Не знаю как в chicken, а в Gambit есть примитив namespace - возможно, то, что ты ищешь.

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