Read-Macros

В документации целых три классификатора, которые можно позиционировать как группы функций базы данных, собственно, база данных, система запросов типа SQL-Prolog (Pilog) и предикаты, а если считать, что реализованная система управления базой данных, скорее графовая или сетевая типа NoSql или ORM, то и группу функций реализиции “объектной парадигмы“ тоже можно отнести к теме хранения данных, поскольку хранение подразумевает организацию этих данных и доступ к ним. Фактически, любая система, прежде всего, система хранения данных, а поскольку в PicoLisp она встроена, то это тот акцент или специфика системы, на которую я “купился“. То есть не из-за списков, а из-за более базовой конструкции - точечной пары и … базы данных!
Но прежде чем акцентировать четыре оставшихся классификатора, есть тема организации фрагментов (повторяющегося) кода. Такая группа функций или переменных явно не классифицируется, но неявно акцентируется, при чем не вокруг функции macro, а вокруг “считывателя“ read. Ну и эта группа символов “метится“ в их описании как см. Read-Macros - *Uni box idx quote read symbols
https://picolisp.tiddlyhost.com/#Read-Macros
Макрос в Lisp, а также в низкоуровневых языках, таких как C или ассемблер, представляет собой фрагмент кода, вычисляемый во время компиляции, в результате чего получается другой фрагмент кода, который в конечном итоге компилируется. В чистом интерпретаторе нет времени компиляции, и, следовательно, такой макрос не существует. Вышеизложенное не означает, что вы не можете программно манипулировать своим кодом! По сути, есть две возможности: использовать макрос чтения и «def» вместо «de» для полностью оцененного определения … методы также можно комбинировать.
Существует механизм типа квазицитирования - функция fill, а функция macro
предоставляет обертку над ней. Короче, классификатор напрашивается, но, видимо, автор не довел дело до конца. Особенно это видно на примерах манипулирования в качестве префиксов обратным апострофом и тильдой … все вроде и как бы описано, но выглядит слишком сложно … наверченным или навороченным … не говоря уже о том, что одинарная кавычка плохо разборчива, а тем более не различима с обратной … и кажется, что все это может быть оптимизировано теми же скобками … то есть механизм цитирования и, кстати, его связи с макросами надо додумать … и учесть в будущей спецификации. И, не смотря на уникальную архитектуру системы, её интерфейс не выдерживает критики. Вот в таких случаях и становится понятным как умирают хорошие идеи. Что будет с системой, когда её автор не сможет её поддерживать?
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
Всегда чему-то учусь!