У меня очень простой вопрос Common Lisp: каков идиоматический способ удаления дубликатов из списка строк?
remove-duplicates
работает так, как я ожидал для чисел, но не для строк:
* (remove-duplicates '(1 2 2 3))
(1 2 3)
* (remove-duplicates '("one" "two" "two" "three"))
("one" "two" "two" "three")
Я предполагаю, что в каком-то смысле строки не равны, скорее всего потому, что хотя "foo" и "foo" по всей видимости идентичны, на самом деле это указатели на разные структуры в памяти. Я думаю, что мои ожидания здесь могут быть просто пережитком C.