List 从方案中的列表列表中删除空列表

List 从方案中的列表列表中删除空列表,list,scheme,racket,removeall,empty-list,List,Scheme,Racket,Removeall,Empty List,我有一个列表,我想从中删除所有的空列表 我的列表是((“O”)(“O”)() 如果我这样做 (remove '() '(("O") ("O") ())) 我得到了正确的输出(“O”)(“O”) 但是使用remove*(从文档中删除所有事件)我得到了相同的输入列表,即: (remove* '() '(("O") ("O") ())) 还给我 (("O") ("O") ()) 我做错了什么?首先,方案(R5R、R6R、R7R)中不存在remove*删除确实存在于R6RS中,并执行您想要的操作

我有一个列表,我想从中删除所有的空列表

我的列表是
((“O”)(“O”)()

如果我这样做

(remove '() '(("O") ("O") ()))
我得到了正确的输出
(“O”)(“O”)

但是使用
remove*
(从文档中删除所有事件)我得到了相同的输入列表,即:

(remove* '() '(("O") ("O") ())) 
还给我

(("O") ("O") ())

我做错了什么?

首先,方案(R5R、R6R、R7R)中不存在
remove*
<代码>删除确实存在于R6RS中,并执行您想要的操作:

#!r6rs
(import (rnrs))
(remove '() '(() (1) (2) () ())) ;==> ((1) (2))
在scheme方言Racket中,您既有
remove
又有
remove*
,而且您似乎正在使用Racket,因为它确实按照您描述的方式工作<代码>删除*获取要删除的项目列表。因此,在
#中
(删除'()lst)
!R6RS
#中的
(remove*'(())lst)
相同!球拍
<代码>删除*似乎用于删除所有匹配元素:

(remove* '(() (2)) '(() (1) (2) () ())) ; ==> ((1))

它适用于
(过滤器(lambda(元素)(非(空?元素)))列表))
,但仍然不知道
删除*
有什么问题,我知道您已经得到了答案,但从那时起“与您编写的代码问题有关的问题必须在问题本身中描述具体问题,并包括重现问题的有效代码,“您能否也展示一个演示意外结果的
remove*
示例?我不确定@JoshuaTaylor是否理解您的意思,但我已编辑了问题。现在正确吗?(无论如何感谢commnet)它以前是正确的,但现在它有了更多的上下文,并显示了意外的输出。我希望这能让未来的用户更容易找到问题和答案。谢谢感谢您的澄清,是的,我确实在使用DrRacket(相当大)