scala> // #81
scala> // 'List' is Immutable Where as 'Array' is Mutable
scala> // For Mutable List, use ListBuffer #83
scala>
scala> /* List Operators
| ::: Append 2 lists
| :: Cons Operator : Used to Prepend a New Element to
| an existing List
| : Is Constant Time
| :+ / append : Used to append an element to the List
| : Is Linear Time #83
| */
| val l1 = List() //Empty List
l1: List[Nothing] = List()
scala> val l2 = Nil //Empty List (Can also be indicated by Nil)
l2: scala.collection.immutable.Nil.type = List()
scala> val l3 = List("maths", "english")
l3: List[String] = List(maths, english)
scala> //Using Cons (::) Operator
scala> //Note here '::' is a method of its right operand #85
scala> // Breadcrumb : Operator Associativity
scala> val l4 = "maths1" :: "english1" :: Nil
l4: List[String] = List(maths1, english1)
scala> val l5 = l3 ::: l4
l5: List[String] = List(maths, english, maths1, english1)
scala>
scala>
scala> /*
| Useful List methods #85
| */
| val l1 = List("english", "math", "Science", "History", "Geo")
l1: List[String] = List(english, math, Science, History, Geo)
scala> l1.length
res53: Int = 5
scala> l1.count()
<console>:9: error: not enough arguments for method count: (p: String => Boolean)Int.
Unspecified value parameter p.
l1.count()
^
scala> l1.count(x => !x.equals("math"))
res55: Int = 4
scala> l1.head
res56: String = english