我有一个 List,它可能包含相等的比较元素。我想要一个类似的列表,但删除了一个元素。因此,从(A,B,C,B,D)我希望能够“删除”只有一个 B 得到例如(A,C,B,D)。结果中元素的顺序并不重要。
我有一些工作代码,是用 Scala 的 Lisp 编写的 做这个?
上下文是一个纸牌游戏,其中有两副标准牌,所以可能 是复制的牌,但是仍然一张一张地打。
def removeOne(c: Card, left: List[Card], right: List[Card]): List[Card] = {
if (Nil == right) {
return left
}
if (c == right.head) {
return left ::: right.tail
}
return removeOne(c, right.head :: left, right.tail)
}
def removeCard(c: Card, cards: List[Card]): List[Card] = {
return removeOne(c, Nil, cards)
}