Skip to main content

Command Palette

Search for a command to run...

as ... soc ... sert и asoq

Updated
2 min read
S

Всегда чему-то учусь!

as - возвращает any2 неоцененным, когда any1 оценивается как не NIL. В противном случае возвращается NIL. (as Flg A B C) эквивалентно (and Flg '(A B C)). Используется в макросах чтения для условного исключения подвыражений. Своего рода quote.

(as 'any1 . any2) -> any2 | NIL

https://picolisp.tiddlyhost.com/#as

Поскольку в этом контексте определенный лексический анализ, то ещё символы, использующие “as” как префикс.

assoc - выполняет поиск в списке ассоциаций. Возвращает первый элемент из lst с any в качестве его CAR или NIL, если совпадений не найдено. \== используется для сравнения (равенство указателей).

(assoc 'any 'lst) -> lst

rassoc - обратный assoc. Возвращает первый элемент из lst с его CDR, равным any, или NIL, если совпадений не найдено.

Ну и рядом то, что сбивает с толку. По крайней мере в процессе изучения системы. Поэтому акцент уместен, хотя связь больше фонетическая, чем даже синтаксическая, а тем более, семантическая, хотя, с точки зрения функциональности, как раз, функции, которые они обозначают, связаны!. Случайно? Вероятно, аббревиатура от “ассоциации” и “квеста”. В обоих случаях выше, “asso” - скорее всего, тоже от “ассоциации”, но “о” можно интерпретировать и как “объект”.

asoq - выполняет поиск в списке ассоциаций. Возвращает первый элемент из lst с его CAR, равным any, или NIL, если совпадений не найдено.

https://picolisp.tiddlyhost.com/#assoc

И набор с лексемой “sert” (можно акцентировать отдельно, с учетом наличия функции insert - вставляет что-нибуь в список на указанную позицию) - assert , asserta , asserta/1 , assertz и assertz/1 .

More from this blog

Нетривиальный Repl

Это плавный переход от eval к loop к циклам и где уместно вспомнить, что эта тема уже затрагивалась в контексте самой часто употребляемой функции for и рекурсии. Repl как функция не анонсирована в документации, но есть авторская классификация в файла...

Jul 15, 20257 min read
A

abrakadabra

195 posts

Метамоделирование как интеграция философии, лингвистики и математики на базе информатики. Анализ теорий и практик программирования. Прецеденты оптимизации.