equal
deleted
inserted
replaced
196 def member[A, B](xs: List[A])(x: B): Boolean = xs.contains(x) |
196 def member[A, B](xs: List[A])(x: B): Boolean = xs.contains(x) |
197 def insert[A](x: A)(xs: List[A]): List[A] = if (xs.contains(x)) xs else x :: xs |
197 def insert[A](x: A)(xs: List[A]): List[A] = if (xs.contains(x)) xs else x :: xs |
198 def remove[A, B](x: B)(xs: List[A]): List[A] = if (member(xs)(x)) xs.filterNot(_ == x) else xs |
198 def remove[A, B](x: B)(xs: List[A]): List[A] = if (member(xs)(x)) xs.filterNot(_ == x) else xs |
199 def update[A](x: A)(xs: List[A]): List[A] = x :: remove(x)(xs) |
199 def update[A](x: A)(xs: List[A]): List[A] = x :: remove(x)(xs) |
200 |
200 |
|
201 def merge[A](xs: List[A], ys: List[A]): List[A] = |
|
202 if (xs.eq(ys)) xs |
|
203 else if (xs.isEmpty) ys |
|
204 else ys.foldRight(xs)(Library.insert(_)(_)) |
|
205 |
201 def distinct[A](xs: List[A]): List[A] = |
206 def distinct[A](xs: List[A]): List[A] = |
202 { |
207 { |
203 val result = new mutable.ListBuffer[A] |
208 val result = new mutable.ListBuffer[A] |
204 xs.foreach(x => if (!result.contains(x)) result += x) |
209 xs.foreach(x => if (!result.contains(x)) result += x) |
205 result.toList |
210 result.toList |