Удаление повторяющихся строк из списка

У меня очень простой вопрос 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.

5
задан Duncan Bayne 29 October 2011 в 09:05
поделиться