PicoLisp и ИИ-боты

Для предыдущего поста увидел, что все боты прекрасно справляются с комментированием кода. Хочу определиться с технологией выбора цитирования, какие и откуда комментарии, может ограничиться парой-тройкой ботов для “контроля качества”, но за основу взять, вообще, только один. Gemini, Chat GPT или Claude … Первый, на промт о списке функций без зависимостей, пустился в рассуждения о том, что считать встроенными функциями, а что зависимостями … а второй бодро перечислил встроенные функции без зависимостями, назвав их “чистыми“. Надо поэкспериментировать на этот предмет с третьим и тогда принять решение о комментариях.
Из списка “функций без зависимостей“ взял “с предвкушением нового открытия“ append … и обнаружил целый вейер зависимостей - loop let cdr cons car shift set setq save pair while atom eval ++ ? Так что придется “функции без зависимостей” искать самостоятельно, “руками и глазами” …
(NIL "append" _Append)
global.l
# (append 'lst ..) -> lst
(de _Append (Exe)
(let X Exe
(loop
(? (atom (cdr (shift X)))
(eval (car X)) )
(? (pair (eval (car X)))
(let
(Y @
R (save (cons (++ Y) Y))
Z R )
(while (pair Y)
(setq Z (set 2 Z (cons (++ Y) Y))) )
(while (pair (cdr (shift X)))
(save (setq Y (eval (car X)))
(while (pair Y)
(setq Z (set 2 Z (cons (++ Y) Y))) ) ) )
(set 2 Z (eval (car X)))
R ) ) ) ) )
map:
llvm~_Append (375 "src/subr.l" llvm pico)
llvm~openRdWrAppend (45 "src/lib.c" llvm pico)
llvm~openWrAppend (49 "src/lib.c" llvm pico)
pico~append (375 "src/subr.l" llvm pico)
В библиотеки “с”, конечно, уже нет смысла лезть и, скорее всего, на этом уровне исследования структуры и стоит остановиться. Пока не понятно с базовым уровнем, в принципе. С одной стороны, система - отличный прецедент для образования, а сдругой сам автор расчитывает на то, что уже надо знать тот же “с” с POSIX и даже Lisp.
С этой же проблемой я столкнулся при попытки акцентировать ключевые аспекты в рамках темы NUM. Но такое структурирование и есть уже, собственно, работа над мануалом и здесь на данный момент проссматриваются - Small Number, BigNum, Fix Pointer, math.l, big.l, FLG, NIL, CNT, FD, PID, TIM, DAT, Comparing, Arithmetics, Logic, POSIX, Native C Calls, LLVM. Может в этом же контексте надо рассмтривать и биты, байты, “блобы” … и просто весь спектор “классики“. В конце концов, есть такой принцип - выжимай все их системы-хоста! … пусть она или он выпоняют всю “рутину нижнего уровня“. То есть, не смотря на то что PicoLisp сам претендует на замещение нижнего уровня и даже есть попятки замутить на нем операционную систему, в мануале лучше “пойти на поводу” автора, отталкиваясь от некоторого стандарта и больше внимания уделяя, собственно “символьному моделированию“, “символьной обработке“.
P. S. В файле мануала не будет повторяться содержимое первого файла, а только ссылки на соответствующие его тиддлеры. Главное структура, которая, фактически, уже определена, за исключением таких деталей, который обнаружатся в процессе. И ещё тут же, пользуясь, случаем … разражают мануалы, начинающиеся с “привет, мир!“ или как сложить два числа! … там, же, собственно, и факториал! Считаю, что, в крайнем случае, надо начинать с инсталляции системы и описанием структуры папок и файлов … и, вообще, с работы с файлами, а не с фокусов с командной строкой, особенно, в современном мире, когда по факту, давно царит тотальный графический интерфейс и где “строка ввода” (а не терминал вывода!) просто частный случай в его составе и, наконец, концепция canvas тихо и незаметно завоевывет мир, усмехаясь над любыми попытками что-то новое сделать с десктопом (рабочим столом). И давно пора все интегрировать в браузере - операционную систему, базу данных, гипертекст, графический интерфейс и даже клиента с сервером. И это называть радикальным подходом к приложениям! Некая компилируемая среда как хост и метаинтерпретатор как ядро с другими интерпретаторами-плагинами.
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
Всегда чему-то учусь!