С учетом следующего списка:
sealed abstract class IntList
case class Empty() extends IntList
case class Element(n: Int, tail: IntList) extends IntList
- Определить функцию отбрасывания (n, xs).
- Он должен вернуть список xs, без первых n элементов.
Это то, что я пробовал:
def drop(n: Int, xs: IntList): IntList = xs match {
case _ if n == 0 => xs
case xs : Empty => Empty()
case xs : Element => Element(xs.tail.n, drop(n-1, xs.tail))
}
но
error: value n is not a member of Solution.IntList
case xs : Element => Element(xs.tail.n, drop(n-1, xs.tail))
Я предполагаю, что это потому, что xs.tail больше не гарантированно будет Element
. Как мне это сделать? Спасибо.