Подпись take будет сравнивать аргумент с индексом, поэтому инкрементный индекс никогда не будет больше аргумента
Подпись
override def take(n: Int): List[A] = {
val b = new ListBuffer[A]
var i = 0
var these = this
while (!these.isEmpty && i < n) {
i += 1
b += these.head
these = these.tail
}
if (these.isEmpty) this
else b.toList
}