Всегда будут только A
с и B
с в строке?Если нет, вы можете захотеть сделать что-то вроде
(remove #\A yourstring :test-not 'char=)
Согласно справке XLISP для remove
, Nyquist remove
не работает с string
с,только list
с.Вам нужно преобразовать string
в list
, чтобы работать с ним таким образом, но coerce
тоже нет.Это хакерское прикосновение, но самый простой способ обойти это, я вижу, это потоковая передача string
и read-char
.Это создаст list
из char
с, которыми вы можете затем манипулировать с помощью remove
.
(defun string->list (a-string)
(let ((collector nil)
(stream (make-string-input-stream a-string)))
(dotimes (c (length a-string) (reverse collector))
(setf collector (cons (read-char stream) collector)))))
. Теперь должно быть возможно
(remove #\A (string->list yourstring) :test-not 'char=)
.