Я пытаюсь удалить строку из вектора таким образом:Удалить строку из вектора
CL-USER> (defparameter *x*(vector 1 "ab" 3))
*X*
CL-USER> (remove "ab" *x*)
#(1 "ab" 3)
Я хочу, чтобы получить #(1 3)
в результате последней операции.
Может ли кто-нибудь объяснить мне, что происходит, как получить ожидаемый результат?
Я использую SBCL + Slime + Emacs + Ubuntu 14.04.
EDIT:
Я думаю, что я нашел ответ, потому, что функция сравнения по умолчанию EQL, в то время как сравнение строк должна выполняться со строкой = функции.
Одна проблема остается, потому что вы не можете использовать string = для чисел. Может быть, с новой функцией для сравнения каждой переменной в зависимости от ее типа можно решить.