i

Fachkonzept - let-Ausdrücke

Lokale Definitionen verwenden

Wir betrachten hier noch einmal das Umkehrverfahren zur Verschlüsselung kurzer Texte, die aus einer geraden Anzahl von Zeichen bestehen.

MORGEN -> MOR GEN -> ROM NEG -> ROMNEG
FRUEHSTUECKSEI -> FRUEHST UECKSEI -> TSHEURF IESKCUE -> TSHEURFIESKCUE

Das Umkehrverfahren lässt sich für Zeichenketten mit gerader Länge mit folgender Funktionsdefinition implementieren.

verschluesselterText text =
    String.reverse (String.left (String.length text // 2) text) ++ 
    String.reverse (String.right (String.length text // 2) text)

Der Ausdruck ist recht komplex und daher für Anfänger schwer zu durchschauen. Einfacher zu lesen wird er, wenn man Teilausdrücke mit Hilfe lokaler Konstanten auslagert.

verschluesselterText text =
    let 
        halbeLaenge = String.length text // 2
        linkerTeil = String.left halbeLaenge text
        rechterTeil = String.right halbeLaenge text
    in
    String.reverse linkerTeil ++ String.reverse rechterTeil

Diese Auslagerung hat auch den Vorteil, dass der Teilausdruck String.length text // 2 nur einmal vorkommt und daher auch nur einmal ausgewertet werden muss.

Die Auslagerung erfolgt mit einem let-Ausdruck.

let-Ausdruck

Mit einem let-Ausdruck kann man lokale Definitionen einführen. Die definierten Namen für lokale Konstanten (oder auch lokale Funktionen) sind nur innerhalb der betreffenden Funktion verwendbar.

Lokale Konstanten benutzt man, um Teilausdrücke aus einem komplexen Ausdruck auszulagern. Dieses Vorgehen ermöglicht es den Ausdruck übersichtlicher zu gestalten und eine mehrfache Auswertung identischer Teilausdrücke zu vermeiden.

Suche

v
8.2.2.4.3
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/teilausdruecke/konzept_let
dev.inf-schule.de/8.2.2.4.3
dev.inf-schule.de/@/page/FfRpJsHeujY7n0aZ

Rückmeldung geben