Компарация

1 min read
Акцентирование “логики” и “компарации с нулем“ естественно обуславливает посмотреть весь список операций, связанных с компарацией, в принципе, тем более, что в описании можно видеть явные отсылки на эту тему и сама тема в документации тоже выделена.
В PicoLisp разрешено сравнивать элементы данных произвольного типа. Любые два элемента являются либо
- Идентичными
- Они являются одним и тем же объектом памяти (равенство указателей). Например, два внутренних символа с одинаковым именем идентичны. И короткие числа (до 60 бит плюс знак) также эквивалентны "указателю"-равенству.
- Равными
- Они равны во всех отношениях (структурное равенство), но не обязаны быть идентичными. Примерами являются числа с одинаковым значением, переходные (транзитные) символы с одинаковым именем или списки с равными элементами.
- Или они имеют четко определенные порядковые отношения
- Числа сравниваются по числовому значению, строки по имени, а списки рекурсивно по элементам (если CAR равны, сравниваются их CDR). Для различных типов применяется следующее правило: Числа меньше символов, а символы меньше списков. Как особые случаи,
NIL
всегда меньше всего остального иT
всегда больше всего остального.
Весь список - max memq min rank range/3 group sort T delq balance uniq asoq < \= <= <> \== >=
0
Subscribe to my newsletter
Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
picolispsortsortingsorting algorithms#SortingTechniques#SortingAlgorithmsrankrankingranking factorsrange
Written by

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