相关疑难解决方法(0)

什么是从不可变列表中"删除"一个元素的惯用Scala方法?

我有一个List,它可能包含比较相等的元素.我想要一个类似的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)
}
Run Code Online (Sandbox Code Playgroud)

scala list

77
推荐指数
5
解决办法
8万
查看次数

需要一个类似于disj的功能,但需要一个clojure中的列表.它总体上可能吗?

我需要遍历一个列表并对每个元素和除该元素之外的元素进行一些计算.例如,有一个名单(1 2 3 1),我需要对(1) (2 3 1),(2) (1 3 1),(3) (1 2 1)(1) (2 3 1).

clojure

3
推荐指数
2
解决办法
306
查看次数

标签 统计

clojure ×1

list ×1

scala ×1