В чем разница между eq, eql, equal и equalp в Common Lisp?
Еще несколько примечаний:
-
Большинство common-lisp функций CL неявно используют equality EQL, когда не указан тест
-
См. также equality STRING-EQUAL, = и TREE-EQUAL
-
В syntax основе EQ обычно лежит сравнение common-lisp указателей
И приблизительное common-lisp руководство:
To compare against... Use... Objects/Structs EQ NIL EQ (but the function NULL is more concise and probably cheaper) T EQ (or just the value but then you don't care for the type) Precise numbers EQL Floats = Characters EQL or CHAR-EQUAL Lists, Conses, Sequences EQ (if you want the exact same object) EQUAL (if you just care about elements) Strings EQUAL (case-sensitive), EQUALP (case-insensitive) STRING-EQUAL (if you throw symbols into the mix) Trees (lists of lists) TREE-EQUAL (with appropriate :TEST argument)
Обратите внимание, что equality для повышения эффективности equality обычно EQ >> EQL >> EQUAL common-lisp >> EQUALP.
syntax
common-lisp
equality
В чем разница между eq, eql, equal и equalp в Common Lisp?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.