i

Verwendung lokaler Konstanten

Teilausdrücke auslagern

Hier noch einmal die Implementierung der Funktion verschluesselterText zur Implementierung des Umkehrverfahrens für Zeichenketten mit gerader Länge:

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

Wir führen lokale Konstanten ein, um den gesamten Ausdruck in Teilausdrücke zu zerlegen:

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

Die Abbildung verdeutlicht die Grundidee dieser Zerlegung.

Teilausdrücke

Aufgabe 1

(a) Erkläre die Rolle der lokalen Konstanten bei der Auslagerung von Teilausdrücken.

(b) Erläutere, welche Vorteile diese Auslagerung von Teilausdrücken hat.

(c) Teste die verbesserte Funktionsdefinition in der REPL.

Aufgabe 2

Betrachte den allgemeinen Fall, dass die Zeichenkette auch eine ungerade Länge haben kann. In diesem allgemeinen Fall muss man zusätzlichen den mittleren Teil beschreiben. Benutze weitere vordefinierte Funktionen wie z.B. String.dropLeft und String.dropRight, um das mittlere Zeichen zu beschreiben.

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

Suche

v
8.2.2.4.1.1.3
www.inf-schule.de/deklarativ/fp_elm/elm_programme/teilausdruecke/umkehrverfahren/lernstrecke/lokalekonstanten
www.inf-schule.de/8.2.2.4.1.1.3
www.inf-schule.de/@/page/Rw7FhcaTD9N1vVEx

Rückmeldung geben