使用 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))
所以我想从列表中删除 #\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))