RosettaCodeData/Task/Singly-linked-list-Element-definition/Scala/singly-linked-list-element-definition-1.scala
2018-06-22 20:57:24 +00:00

8 lines
234 B
Scala

sealed trait List[+A]
case class Cons[+A](head: A, tail: List[A]) extends List[A]
case object Nil extends List[Nothing]
object List {
def apply[A](as: A*): List[A] =
if (as.isEmpty) Nil else Cons(as.head, apply(as.tail: _*))
}