Компарация

Sergey ShishkinSergey Shishkin
1 min read

Акцентирование “логики” и “компарации с нулем“ естественно обуславливает посмотреть весь список операций, связанных с компарацией, в принципе, тем более, что в описании можно видеть явные отсылки на эту тему и сама тема в документации тоже выделена.

В PicoLisp разрешено сравнивать элементы данных произвольного типа. Любые два элемента являются либо

Идентичными
Они являются одним и тем же объектом памяти (равенство указателей). Например, два внутренних символа с одинаковым именем идентичны. И короткие числа (до 60 бит плюс знак) также эквивалентны "указателю"-равенству.
Равными
Они равны во всех отношениях (структурное равенство), но не обязаны быть идентичными. Примерами являются числа с одинаковым значением, переходные (транзитные) символы с одинаковым именем или списки с равными элементами.
Или они имеют четко определенные порядковые отношения
Числа сравниваются по числовому значению, строки по имени, а списки рекурсивно по элементам (если CAR равны, сравниваются их CDR). Для различных типов применяется следующее правило: Числа меньше символов, а символы меньше списков. Как особые случаи, NILвсегда меньше всего остального и Tвсегда больше всего остального.

Весь список - max memq min rank range/3 group sort T delq balance uniq asoq < \= <= <> \== >=

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

0
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

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