equal
deleted
inserted
replaced
185 |
185 |
186 def member[A, B](xs: List[A])(x: B): Boolean = xs.contains(x) |
186 def member[A, B](xs: List[A])(x: B): Boolean = xs.contains(x) |
187 def insert[A](x: A)(xs: List[A]): List[A] = if (xs.contains(x)) xs else x :: xs |
187 def insert[A](x: A)(xs: List[A]): List[A] = if (xs.contains(x)) xs else x :: xs |
188 def remove[A, B](x: B)(xs: List[A]): List[A] = if (member(xs)(x)) xs.filterNot(_ == x) else xs |
188 def remove[A, B](x: B)(xs: List[A]): List[A] = if (member(xs)(x)) xs.filterNot(_ == x) else xs |
189 def update[A](x: A)(xs: List[A]): List[A] = x :: remove(x)(xs) |
189 def update[A](x: A)(xs: List[A]): List[A] = x :: remove(x)(xs) |
|
190 |
|
191 def distinct[A](xs: List[A], eq: (A, A) => Boolean = (x: A, y: A) => x == y): List[A] = |
|
192 { |
|
193 val result = new mutable.ListBuffer[A] |
|
194 for (x <- xs if !result.exists(y => eq(x, y))) result += x |
|
195 result.toList |
|
196 } |
190 } |
197 } |