Split a sequence into a prefix and the rest.

Take and Drop

TakeDrop.scala
object Main {
  def main(args: Array[String]): Unit = {
    val n = 
    val nums = List(1, 2, 3, 4, 5)
    val firstN = nums.take(n)
    val rest = nums.drop(n)

    println("taken=" + firstN.mkString(","))
    println("rest=" + rest.mkString(","))
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val n = 
    val nums = List(1, 2, 3, 4, 5)
    val firstN = nums.take(n)
    val rest = nums.drop(n)

    println("taken=" + firstN.mkString(","))
    println("rest=" + rest.mkString(","))
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val n = 
    val nums = List(1, 2, 3, 4, 5)
    val firstN = nums.take(n)
    val rest = nums.drop(n)

    println("taken=" + firstN.mkString(","))
    println("rest=" + rest.mkString(","))
  }
}
take-drop `take` keeps the first n elements and `drop` skips them, each returning a new sequence without changing the original.