y
我有一个从 list中删除一个列表的功能x
。前提条件是出现列表y
是x
- 任何出现在 中的字符都y
必须出现在 中的子集x
,并且其出现在 中的频率y
必须 <= 在 中出现的频率x
。
结果值是一个事件 - 意味着它已排序并且没有零条目。
这是我的原始代码。这是针对 Scala progfun 作业的,现在我只是好奇正确答案是什么。
type Occurrences = List[(Char, Int)]
def subtract(x: Occurrences, y: Occurrences): Occurrences = x filterNot (y contains)
它必须通过以下单元测试。
测试 1
test("subtract: lard - r") {
val lard = List(('a', 1), ('d', 1), ('l', 1), ('r', 1))
val r = List(('r', 1))
val lad = List(('a', 1), ('d', 1), ('l', 1))
assert(subtract(lard, r) === lad)
}
测试 2
// subtract: jimmy - my
List((i,1), (j,1), (m,1), (y,0)) did not equal List((i,1), (j,1), (m,1))
测试 3
//subtract: ok - ok
List((k,0), (o,0)) did not equal List()
测试 4
//subtract: abba - abba
List((a,0), (b,0)) did not equal List()
测试 5
//subtract: assessment - assess