y
listから1 つのリストを削除する関数があります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