i

Fachkonzept - Pipe-Operator

Funktionen hintereinanderschalten

Wir betrachen eine Funktion, welche Benutzernamen anonymisieren soll, indem die ersten drei Buchstaben in Großbuchstaben zurückgegeben werden und mit dem Zeichen '_' auf insgesamt 15 Stellen aufgefüllt werden soll.

James Bond -> JAM____________

Dazu benötigen wir die Funktionen:

  • String.left : Gibt den linken Teil einer Zeichenkette zurück.
  • String.padRight : Füllt auf der rechten Seite mit Zeichen auf.
  • String.toUpper : Wandelt eine Zeichenkette in Großbuchstaben um.

Die Funktion lässt sich folgendermaßen definieren:

anonymisieren name =
    String.toUpper (String.padRight 15 '_' (String.left 3 name))

Es werden mehrere Funktionen nacheinander ausgeführt, um das gewünschte Ergebnis zu berechnen. Wenn man das Ergebnis einer Funktion als letzten Parameter einer anderen Funktion übergeben möchte, kann man auch den Pipe-Operator benutzen. Die obige Funktion lässt sich damit folgendermaßen schreiben:

anonymisieren name =
    String.left 3 name |> String.padRight 15 '_' |> String.toUpper

Die Ausführung der Funktionen erfolgt dann nicht von innen nach außen wie bei den Klammerausdrücken, sondern von links nach rechts. In einigen Situationen ist der Code dann besser lesbar.

Beim Hintereinanderschalten von Funktion werden die betreffenden Funktionen nacheinander ausgeführt. Anstatt durch Klammerausdrücke kann man den Pipe-Operator verwenden, wenn das Ergebnis eines Ausdrucks als letzter Parameter einer weiteren Funktion übergeben werden soll.

Suche

v
8.2.2.4.4
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/teilausdruecke/konzept_pipe
dev.inf-schule.de/8.2.2.4.4
dev.inf-schule.de/@/page/kkgPSEPAwVSZ0Ic9

Rückmeldung geben