使用 remove* 删除方案中的列表成员

Removing list members in scheme with remove*

所以我想从列表中删除 #\space,假设列表是 (#\a #\b #\space #\b #\space),我想 (remove* (list space) (list #\a #\b)) 所有空格。

所以当我 运行,

(remove* (list #\space) (list #\a #\b #\space #\b #\space))

打印输出正确。即 '(#\a #\b #\b)

如果我写的话也是如此:

(define somelist #\space)

(remove* (list somelist) (list #\a #\b #\space #\b #\space))

但是,如果我通过以下方式创建列表:

(define somelist (string->list " "))

它失败了。

我不知道有什么区别以及为什么它不起作用。无论如何,在我的程序中,我需要通过 string->list 摆脱成为列表一部分的空格。知道怎么做吗?

我正在使用 Racket。

您正在将字符列表包装在另一个列表中。

你想要的是:

(remove* somelist (list #\a #\b #\space #\b #\space))