 )
)
            
              Für die Klasse List sind eine Fülle nützlicher Funktionen definiert.
              Viele der beschriebenen Funktionen sind nicht ausschließlich für die Klasse
              oder in der Klasse List definiert.
              Auch wenn es anders erscheint, wird keine List durch den Aufruf einer Funktion
              verändert. Würde eine List durch eine Funktion verändert, würde
              es sich bei einer List nicht um einen unveränderlichen Datentyp
              handeln. Nachfolgend sollen ausgewählte Funktionen der Klasse List
              vorgestellt werden.
            
| ++ | Verbindet eine Listmit den Elementen einer traversablen Collection. | 
| +: | Erzeugt eine neue Listbestehend aus einem hinzuzufügendem
                  Element, gefolgt von der Ausgangsliste. | 
| :: | Erzeugt eine Listbestehend aus einem neuen Element und einerList. | 
| ::: | Verbindet zwei ListObjekte zu einer neuenList. | 
| apply | Liefert das Element welches sich an der zu übergebenden Stelle befindet. | 
| contains | Überprüft, ob ein Element in der Liste enthalten ist. | 
| count | Ermittelt die Anzahl Elemente, die eine definierte Bedinung erfüllen. | 
| drop | Erzeugt eine neue Listmit den Elementen der Ursprungsliste,
                  ohne die ersten, im Parameter angegebenen,nElemente. | 
| dropRight | Erzeugt eine neue Listmit den Elementen der Ursprungsliste,
                  ohne die letzten, im Parameter angegebenen,nElemente. | 
| equals | Überprüft die Gleichheit der Objekte. | 
| exists | Überprüft, ob zumindest ein Element der Liste die Anforderung der übergebenen Funktion entspricht. | 
| filter | Erzeugt eine Liste bestehend aus Elementen der Ausgangsliste, die eine zu definierende Bedinung erfüllen. | 
| filterNot | Erzeugt eine Liste bestehend aus Elementen der Ausgangsliste, die eine zu definierende Bedingung nicht erfüllen. | 
| find | Findet das erste Element, welches der als Parameter übergebenen Argument genügt. | 
| foldLeft | Wendet einen Binäroperator auf einen Startwert und nacheinander allen
                  Elementen der Listan. | 
| forall | Überprüft, ob alle Elemente die übergebene Bedingung erfüllt. | 
| forall | Überprüft, ob alle Elemente die übergebene Bedingung erfüllt. | 
| foreach | foreachliefert nacheinander die Elemente der Liste, auf dieforeachaufgerufen wird. | 
| head | Liefert das erste Element der List. | 
| last | Liefert das letzte Element der List. | 
| length | Liefert die Anzahl Elemente in der List. | 
| map | Erzeugt eine neue Liste durch Anwendung einer Funktion auf alle Elemente der Ausgangsliste | 
| reduceLeft | Iteriert paarweise über die Liste und wertet die übergebene Funktion auf die übergebenen Parameter aus. | 
| reverse | Liefert eine Listmit allen Elementen der Ursprungsliste,
                  wobei die Elemente in umgekehrter Reihenfolge enthalten sind. | 
| size | Liefert die Anzahl Elemente in der List | 
| tail | Liefert eine neue List, ohne das erste Element derListauf demtailaufgerufen wurde. | 
| toSet | Erzeugt aus einer ListeinSet. | 
++def ++ [B] (that: GenTraversableOnce[B]): List[B] def ++ [B >: A, That] (that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[List[A], B, That]): That def ++ [B >: A, That] (that: TraversableOnce[B])(implicit bf: CanBuildFrom[List[A], B, That]): That
              Mit ++ wird auf Basis einer List eine neue List erzeugt,
              die aus den Elementen der List besteht und aus den Elementen der als Parameter
              übergebenen traversablen Collection.
            
              Das nachfolgende Beispiel zeigt die Erzeugung einer List aus einer List
              und einem Array.
            
object PlusPlus {
  def main(args: Array[String]) {
    val list = List(1,2,3,4,5)
    val array = Array(6,7,8,9)    
    val list2 = list ++ array    
    println(list2)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
List(1, 2, 3, 4, 5, 6, 7, 8, 9)
+:def +: (elem: A): List[A] def +: [B >: A, That] (elem: B)(implicit bf: CanBuildFrom[List[A], B, That]): That
              Erzeugt eine neue List bestehend aus einem hinzuzufügendem
              Element, gefolgt von der Ausgangsliste.
            
object PrependIt {
  def main(args: Array[String]) {
    val list = List(1,2,3,4)
    val list2 = 5 +: list
    
    println(list2)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
List(5, 1, 2, 3, 4)
::def :: (x: A) : List[A] def :: [B >: A] (x: B): List[B]
              Die Funktion :: erzeugt eine neue List bestehend
              aus dem in der Funktion übergebenem Argumentes gefolgt vom Inhalt
              der Liste auf der :: aufgerufen wurde.
            
              Nachfolgend ein Skript Beispiel zur Funktion :: in Punkt-Schreibweise.
            
val list1 = List(2,3,4) val list2 = list1.::(1) println(list1) println(list2)
Die Ausführung dieses Skriptes führt zur folgenden Ausgabe auf der Systemausgabe:
List(2, 3, 4) List(1, 2, 3, 4)
              Wie bei der Funktion ::: ist bei der Funktion :: die
              Operator-Schreibweise geläufiger. Da der Funktionsnname mit einem Doppelpunkt
              endet, wird diese bei der Operator-Schreibweise auf den rechten Operanden
              mit dem linken Operanden als Argument aufgerufen.
            
Das nachfolgende Skript entspricht dem obigen in Operator-Schreibweise und führt bei dessen Ausgabe zum gleichen Ergebnis.
val list1 = List(2,3,4) val list2 = 1 :: list1 println(list1) println(list2)
              Die Funktion :: eignet sich auch dazu einzelne Elemente
              zu einer Liste zu verbinden. Das nachfolgende Skript zeigt exemplarisch
              diese Vorgehensweise.
            
val list1 = 1 :: 2 :: 3 :: 4 :: Nil println(list1)
Die Ausführung dieses Skriptes führt zu folgender Ausgabe:
List(1, 2, 3, 4)
              Da die Funktion :: in der Klasse List definiert
              ist, muss als letztes Element ein List Objekt angegeben werden,
              worauf die Funktion :: aufgerufen wird. In unserem Beispiel
              ist dies Nil, was einer leeren List entspricht.
            
:::def ::: (prefix: List[A]) : List[A] def ::: [B >: A] (prefix: List[B]) : List[B]
              Die Funktion ::: verbindet zwei Listen zu einer neuen List. Die Ergebnisliste
              beginnt dabei mit den Elementen, die als Argument der Funktion übergeben wurde, gefolgt
              von den Elementen der Liste auf der die Funktion ::: aufgerufen wurde.
            
              Im nachfolgendem Skript werden zunächst zwei Listen den Variablen
              list1 und list2 zugewiesen. Anschließend
              wird eine neue Liste mit dem Inhalt von list1 und list2
              erstellt und der Variablen list3 zugewiesen.
            
val list1 = List(1,2,3) val list2 = List(4,5,6) val list3 = list2.:::(list1) println(list1) println(list2) println(list3)
Die Ausführung des Skriptes führt zu folgender Ausgabe:
List(1, 2, 3) List(4, 5, 6) List(1, 2, 3, 4, 5, 6)
             Die Verwendung der Funktion ::: in der Schreibweise mit Punkt und Klammern
             wird man in der Praxis weniger häufig antreffen. Geläufiger ist die Operator - Schreibweise.
             Da die Funktion mit einem Doppelpunkt endet, wird die Funktion auf den rechten Operanden
             ausgeführt. Dies erhöht deutlich die Lesbarkeit, da die Elemente des linken
             Operanden vor den Elementen des rechten Operanden im Ergebnis erscheinen.
           
Das nachfolgende Beispiel entspricht dem obigem Beispiel, mit Ausnahme, das hier die Operator-Schreibweise angewendet wird.
val list1 = List(1,2,3) val list2 = List(4,5,6) val list3 = list1 ::: list2 println(list1) println(list2) println(list3)
applydef apply(n: Int): A
              Die Funktion apply(n: Int): A liefert das Element, welches sich an der zu übergebenden Stelle befindet.
            
              Im nachfolgenden Beispiel erzeugen wir eine List mit dem Namen
              theList. Anschließend legen wir den Inhalt der List
              in der Variablen aValue1 ab. Die die Angabe des Methoden Namens
              apply optional ist können wir Angabe des Namens apply
              verzichten, was wir bei der Variablendefinition für aValue2
              anwenden. Zum Abschluss geben wir den Inhalt der Variablen auf der Systemausgabe aus.
            
object MyApply1 {
  def main(args: Array[String]) {
    val theList = List(3,7,2,0,5)
    val aValue1 = theList.apply(2)
    val aValue2 = theList(3)
    println(aValue1)
    println(aValue2)
  }
}
            
            Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
2 0
containsdef contains (elem: Any): Boolean
              Die Funktion contains überprüft ob ein übergebenes Element in der
              Liste enthalten ist. Nachfolgend eine beispielhafte Anwendung:
            
object ContainsIt {
  def main(args: Array[String]){
    val myList = List("123","abc","456","def")
    println(myList contains "1234")
    println(myList contains "abc")
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
false true
count
              Ermittelt die Anzahl Elemente, die eine definierte Bedinung erfüllen. Die zu erfüllende Bedingung
              wird dabei als Funktion an count übergeben.
            
object ListCountDemo {
  def main(args: Array[String]): Unit = {
    val myList = List(1,2,3,4,5,6,7,8,9,10)
    val oddNumbers1 = myList.count((p: Int) => p % 2 != 0)
    val oddNumbers2 = myList.count(_ % 2 != 0)
    println("odd-numbered1 = "+oddNumbers1)
    println("odd-numbered2 = "+oddNumbers2)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
odd-numbered1 = 5
odd-numbered2 = 5
            
            
            dropdef drop(n: Int): List[A]
              Die Funktion drop(n: Int) liefert eine neue List bestehend
              aus den Elementen der List auf der drop aufgerufen
              wurde ohne die ersten n Elemente.
            
object DropDemo {
  def main(args: Array[String]): Unit = {
    val list1 = List(1,3,5,7,9,11)
    val list2 = list1.drop(2)
    println(list1)
    println(list2)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
List(1, 3, 5, 7, 9, 11)
List(5, 7, 9, 11)
            
            
            dropRightdropRight(n: Int): List[A]
              Die Funktion dropRight(n: Int) liefert eine neue List bestehend aus
              den Elementen der List auf der dropRight aufgerufen wurde
              ohne die n letzen Elemente.
            
object DropRightDemo {
  def main(args: Array[String]): Unit = {
    val list1 = List(1,3,5,7,9,11)
    val list2 = list1.dropRight(2)
    println(list1)
    println(list2)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
List(1, 3, 5, 7, 9, 11)
List(1, 3, 5, 7)
            
            
            equalsdef equals(that: Any): Boolean
              Die Funktion equals überprüft ob die beiden
              beteiligten Objekte gleich sind. Auch wenn hashCode im
              folgenden Beispiel nicht aufgerufen wird gilt: Wenn man in einer Klasse equals
              überschreibt, sollte auch die Funktion hashCode überschrieben werden.
              Die Funktion hashCode kommt zum Beispiel bei der Erzeugung eines
              Set zum Einsatz.
            
object MyEquals {
  def main(args:Array[String]){
    val valueA = new AClass(42)
    val valueB = new AClass(42)
    val valueC = new AClass(41)
 
    println(valueA == valueB)
    println(valueA == valueC)
  }
}
class AClass(val aValue: Int){
  override def equals(that: Any): Boolean = that match {
    case that: AClass => that.aValue == aValue
    case _ => false
  }
  override def hashCode = 41 + aValue
}
Die Ausführung des Programmes führt zu folgender Ausgabe auf der Systemausgabe:
true false
existsdef exists (p: (A) => Boolean): Boolean
              Die Funktion exists überprüft, ob zumindest ein Element der Liste die Anforderung der übergebenen Funktion entspricht.
              Im nachfolgenden Beispiel werden zwei List Objekte mit Int Werten erzeugt. Die Variable myFunction ist
              einer Funktion zugeordnet, die als Parameter einen Int-Wert erwartet und als Ergebnis true liefert, wenn
              das Argument durch 2 ohne Rest teilbar ist. Diese Funktion übergeben wir der Funktion exists der zuvor erzeugten Listen.
              Sollte ein Argument der Liste durch 2 ohne Rest teilbar sein, ist das Ergebnis von exists true andernfalls ist das Ergebnis
              false.
            
object ListExists {
  def main(args: Array[String]) {
    val list1 = List(1,2,4,5,7)
    val list2 = List(1,3,5,7)
    
    val myFunction = (x: Int) => x % 2 == 0
    
    println(list1.exists(myFunction))
    println(list2.exists(myFunction))
  }
}
Die Ausführung des Programmes führt zu folgender Ausgabe auf der Systemausgabe:
true false
filterdef filter (p: (A) => Boolean) : List[A]
              Erzeugt eine Liste bestehend aus Elementen der Ausgangsliste, die eine
              zu definierende Bedingung erfüllen. Die zu erfüllende Bedingung
              wird der Funktion filter über eine Funktion mitgeteilt.
              Zur Demonstration der Funktion filter definieren wir
              eine List mit Elementen des Datentyps Int:
            
scala> val list1 = List(1,33,26,146,32,55,26,217,24,326) list1: List[Int] = List(1, 33, 26, 146, 32, 55, 26, 217, 24, 326)
              Nun erzeugen wir eine neue List über die Funktion filter
              mit allem Elementen aus list1 die größer 50 sind.
              Um dies zu erreichen, definieren wir beim Aufruf der Funktion filter
              ein Funktionsliteral innerhalb der Klammern der Funktion.
            
scala> val list2 = list1.filter((x: Int) => x > 50) list2: List[Int] = List(146, 55, 217, 326)
              Da die List nur aus Int Werten besteht, kann der Scala Compiler
              den Typ der Variablen über Typableitung (type inference) bestimmen. Daher
              muss der Typ der Variablen x in der Funktion nicht angegeben werden.
            
scala> val list3 = list1.filter(x => x < 30) list3: List[Int] = List(1, 26, 26, 24)
              Da filter immer ein Element der Filter-Funktion übergibt,
              kann die Schreibweise der Funktion weiter vereinfacht werden und auf den
              übergebenen Parameter mit dem Unterstrich zugegriffen werden.
            
scala> val list4 = list1.filter(_ > 100) list4: List[Int] = List(146, 217, 326)
filterNotdef filterNot(p: (A) ⇒ Boolean): List[A]
              Die Funktion filterNot erzeugt eine List, welche alle
              Elemente der Ausgangs-List enthält, die der zu übergebenden
              Bedingung nicht entsprechen.
            
              Im nachfolgenden Beispiel wird eine List erzeugt, die alle Elemente
              der Ausgangs-List enthält, die nicht gerade sind.
            
object FilterNotDemo {
  def main(args: Array[String]): Unit = {
    val aList: List[Int] = List(2,7,3,4,7,2,6)
    val bList = aList.filterNot((x: Int) => x % 2 == 0)
    
    bList.foreach(println)
  }
}
Die Ausführung des Programms führt zur folgenden Ausgabe auf der Systemausgabe:
7 3 7
findfind(p: (A) => Boolean): Option[A]
              Die Funktion find findet das erste Element in der List auf
              der das übergebene Argument true liefert.
            
              Das Ergebnis wird in einem Option - Typ zurückgeliefert. Im Falle,
              dass das Element in der List enthalten ist wird ein Some
              mit dem entsprechenden Wert zurückgeliefert. Im entgegengesetzten Fall
              wird ein None zurückgeliefert.
            
Nachfolgend ein Beispiel:
object FindInList {
  
  def main(args: Array[String]): Unit = {
    val myList = List(5,2,86,3,55,7,86)
    
    val firstFindResult = myList.find(_ > 40)
    val secondFindResult = myList.find( _ < 0)
    
    println(firstFindResult)
    println(secondFindResult)
    
    println(firstFindResult.get)
  }
}
Die Ausführung dieses Programmes führt zu folgender Ausgabe auf der Systemausgabe:
Some(86)
None
86
            
            
            foldLeftdef foldLeft[B](z: B)(f: (B, A) ⇒ B): B
              Die Funktion foldLeft wendet eine Binärfunktion nacheinander
              auf einen Startwert gefolgt von allen Elementen der List an.
              Das Ergebnis der Binärfunktion ist (mit Ausnahme des Startwertes) das
              erste Element der Binärfunktion bei der nächsten Auswertung.
              Das Ergebnis von foldLeft ist die Auswertung des letzten
              Elementes der List. Wie der Name foldLeft bereits
              andeutet, wird die List von Links nach Rechts durchlaufen
              (beginnt also mit der Auswertung von 1 und endet mit der Auswertung von 11).
            
Nachfolgend ein Beispiel:
object FoldLeftDemo {
  def main(args: Array[String]): Unit = {
    val myList = List(1,3,5,7,9,11)
           
    def myBinFunction(a: Int, b: Int): Int = a - b    
    
    val myResult: Int = myList.foldLeft(0)(myBinFunction)
    
    println(myResult)
  }
}
              Die Ausführung des Programms führt zur Ausgabe von -36 als Ergebnis
              von foldLeft.
            
              Die nachfolgenden Schritte zeigen den Weg von foldLeft um zum Ergebnis (-36)
              zu gelangen.
            
0 - 1 = -1
-1 - 3 = -4
-4 - 5 = -9
-9 - 7 = -16
-16 - 9 = -25
-25 - 11 = -36
            
            
            foralldef forall(p: (A) ⇒ Boolean): Boolean
              Die Funktion forall überprüft, ob alle Elemente die übergebene Bedingung erfüllt.
            
object MyForAll {
  def main(args:Array[String]){
    val aList = List(1,34,5,2,4,56)
    println(aList.forall(i => i <100))
    println(aList.forall(_ < 50))
  }
}
Die Ausführung dieses Programmes führt zu folgender Ausgabe auf der Systemausgabe:
true false
foreachdef foreach (f: (A) => Unit) : Unit def foreach [B] (f: (A) => B) : Unit
              Die Funktion foreach iteriert über alle Elemente der Liste,
              welche in einer zu übergebenen Funktion verarbeitet werden können.
              Das nachfolgende Beispiel zeigt die Verwendung von foreach
              mit einem Funktionsliteral, welches die enthaltenen Elemente auf der
              Systemausgabe ausgibt.
            
object MyListTest {
  def main(args: Array[String]) {
    val myList = List(1,6,3,9,4)       
    myList.foreach(i => println(i))
  }  
}
Die Ausführung dieses Programmes führt zu folgender Ausgabe auf der Systemausgabe:
1 6 3 9 4
headdef head : A
              Die Funktion head liefert das erste Element einer Liste.
              Der nachfolgende Quelltext zeigt beispielhaft die Verwendung der Funktion head.
            
object MyListHeadTest {
  def main(args: Array[String]) {
    val myList = List(4,3,2,1)
    val headOfList = myList.head
    println(headOfList)
  }
}
              Als Ergebnis des Programmablaufs wird der Int-Wert 4 auf
              der Systemausgabe ausgegeben.
            
last
              Die Funktion last liefert das letzte Element der zugehöigen List.
            
object LastListElement {
  def main(args: Array[String]): Unit = {
    val theList = List("2","7","1","3","7","3")
    println(theList.last)
  }
}
              Als Ergebnis des Programmablaufs wird der String '3' auf
              der Systemausgabe ausgegeben.
            
lengthdef length: Int
              Die Funktion length der Klasse List liefert die Anzahl
              der in der List enthaltenen Elemente. Im nachfolgenden Beispiel erzeugen
              wir zunächst eine List mit Int Werten und
              geben im Anschluss die Anzahl der Elemente aus.
              Als Ergebnis erhalten wir die Ausgabe 5 auf der Systemausgabe.
            
object ListLengthDemo {
  def main(aregs: Array[String]): Unit = {
    val myList = List(4,7,2,7,6)
    println(myList.length)
  }
}
mapdef map [B] (f: (A) ? B): List[B] def map [B, That] (f: (A) ? B)(implicit bf: CanBuildFrom[List[A], B, That]): That
             	map erzeugt eine neue Liste durch Anwendung einer Funktion auf alle Elemente der Ausgangsliste.
              Im nachfolgenden Beispiel wird auf jedes Element der Ausgangsliste eine Funktion angewendet,
              welche jeden Wert mit 2 multipliziert. Das jeweilige Listenelement wird in der Funktion durch den
              Unterstrich repräsentiert.
            
object TheMapFunction {
  def main(args: Array[String]) {
    val list1 = List(1,2,3,4)
    val list2 = list1 map (_ * 2)
    println(list1)
    println(list2)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
List(1, 2, 3, 4) List(2, 4, 6, 8)
reduceLeftreduceLeft [B >: A] (f: (B, A) => B) : B
              reduceLeft iteriert paarweise über die Liste von der linken Seite aus
              und wertet mit diesen die übergebene Funktion aus. Die Iteration beginnt mit den ersten beiden
              Elementen der Liste. Das Ergebnis der Auswertung und das
              nächte Element der Liste werden im Anschluss in gleicher Weise ausgewertet.
              Diese Iteration wird fortgesetzt bis das Ende der Liste erreicht ist. Das Ergebnis
              von reduceLeft ist das Ergebnis der letzten Auswertung.
              Nachfolgend beispielhaft die Anwendung von reduceLeft
            
object ReduceLeft1{
  def main(args: Array[String]) {
    val myList = List(1,4,5,8,5,2,5)
    myList.reduceLeft{(a,b) => 
      if (a > b) {    
        println("true "+a+" "+b)
        a * 2 
      }
      else {
        println("false "+a+" "+b)
        b
      }        
    }
  }
}
Die Ausführung des Programmes führt zu folgender Ausgabe:
false 1 4 false 4 5 false 5 8 true 8 5 true 16 2 true 32 5
object ReduceLeft2 {
  def main(args: Array[String]) {
    val myList = List(1,4,5,8,5,2,5)
    println(myList.reduceLeft((a,b) => test(a,b)))    
  }
  
  def test(v1: Int, v2: Int) = if (v2 > v1) v2 else v1
}
Die Ausführung des Programmes führt zum Ergebnis 8.
reversedef reverse : List[A]
              Die Funktion reverse: List[A] liefert eine List mit allen Elementen der Ursprungsliste,
              wobei die Elemente in umgekehrter Reihenfolge enthalten sind.
            
object ListReverse {
  def main(args: Array[String]) {
    val myList = List(1,2,3,4)
    println(myList)
    val reverseList = myList.reverse
    println(reverseList)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
List(1, 2, 3, 4) List(4, 3, 2, 1)
sizedef size : Int
	      	    Die Funktion size der Klasse List liefert die Anzahl Elemente, die in der List enthalten sind.
		  	      Das nachfolgende Beispiel erzeugt zunächst eine Liste mit 5 Elementen. In der nachfolgenden Systemausgabe wird
	  		      die Anzahl der Elemente ausgegeben.
	  	      
object ListSize extends Application{
  val myList = List(1,2,3,4,5)
  println(myList.size)
}
taildef tail : List[A]
              tail liefert eine neue List, ohne das erste Element der List
              auf dem tail aufgerufen wurde. Das nachfolgende Skript zeigt beispielhaft die Anwendung
              von tail.
            
val list1 = List(1,2,3,4,5,6) val list2 = list1.tail println(list1) println(list2)
Der Ablauf des Skriptes führt zu folgender Ausgabe auf der Systemausgabe:
List(1, 2, 3, 4, 5, 6) List(2, 3, 4, 5, 6)
toSetdef toSet[B >: A]: Set[B]
              Die Funktion toSet liefert ein Set auf Basis der List
              auf der toSetaufgerufen wurde. Doppelte Elemente in der List
              werden dabei entfernt.
            
import scala.collection.immutable.HashSet
object ListToSetDemo {
  def main(args: Array[String]): Unit = {
    val aList = List(3,6,8,5,7,3,6,2,6,5,1)
    
    val aSet = aList.toSet
    
    println(aList)
    println(aSet)
  }
}
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
List(3, 6, 8, 5, 7, 3, 6, 2, 6, 5, 1) Set(5, 1, 6, 2, 7, 3, 8)