i

Fachkonzept - Liste

Eine Liste bilden

Mit einer Liste kann man Daten einer Datensammlung verwalten. Die Daten einer Liste werden dann Listenelemente genannt. Sie sind der Reihe nach angeordnet.

Man kann mit entsprechenden Funktionen neue Listenelemente hinzufügen und man kann auch Listenelemente entfernen. Dabei wird immer eine neue Liste erzeugt, die Ausgangsliste bleibt unverändert.

Alle in der Liste vorkommenden Daten müssen in Elm den selben Datentyp haben.

Die Abbildung verdeutlicht den Aufbau einer Liste.

Liste

Hier ein REPL-Dialog, in dem verschiedene Listen erzeugt werden.

> notenliste = [1,3,2,4,1,2,5,3]
[1,3,2,4,1,2,5,3]
    : List number
> namensliste = ["Eva","Otto","Kim","Reza"]
["Eva","Otto","Kim","Reza"] : List String
> leereListe = []
[] : List a
> geschachtelteListe = [[3, 4], [2, 3, 1]]
[[3,4],[2,3,1]]
    : List (List number)

Beachte, dass man Listen von Listen, also geschachtelte Listen erstellen kann und dass man mit [] auch eine leere Liste bilden kann.

Grundlegende Listenfunktionen

Es gibt zahlreiche vordefinierte Listenfunktionen (siehe Elm - List). Wir beschreiben hier nur zwei besonders wichtige Funktionen.

Mit der cons-Funktion :: kann man neue Daten in eine Liste aufnehmen.

> 1::[2,3,4]
[1,2,3,4] : List number
> 'a'::['b','c']
['a','b','c'] : List Char

Mit der append-Funktion ++ (bzw. List.append) kann man zwei Listen zu einer zusammenfügen.

> [1] ++ [2,3]
[1,2,3] : List number
> [1,2] ++ [3,4]
[1,2,3,4] : List number
> ["ene","mene","miste"] ++ ["es","rappelt","in","der","Kiste"]
["ene","mene","miste","es","rappelt","in","der","Kiste"]
    : List String
> List.append ['K','a'] ['t','z','e']
['K','a','t','z','e'] : List Char

Beachte, dass die beiden Funktionen :: und ++ jeweils neue Listen erzeugen.

> liste = [1,2,3]
[1,2,3] : List number
> 0::liste
[0,1,2,3] : List number
> liste
[1,2,3] : List number
> liste ++ [4,5]
[1,2,3,4,5] : List number
> liste
[1,2,3] : List number

Suche

v
8.2.2.3.4
www.inf-schule.de/deklarativ/fp_elm/elm_programme/listen/konzept_liste
www.inf-schule.de/8.2.2.3.4
www.inf-schule.de/@/page/CW7mHSyJ9VlZO0vi

Rückmeldung geben