Zeichenketten interpolieren

Elm:
Zeichenketten interpolieren

How to:

Elm hat keine eingebaute String-Interpolation wie du es von JavaScript vielleicht kennst. Stattdessen nutzt man Funktionen wie String.concat oder ++ Operator.

name = "Welt"
greeting = "Hallo, " ++ name ++ "!"

-- Ausgabe: "Hallo, Welt!"

Für komplexere Situationen kannst du String.join oder List.map mit ++ kombinieren:

import List exposing (map, join)

nameList = [ "Alice", "Bob", "Charlie" ]
greetings = map (\name -> "Hallo, " ++ name ++ "!") nameList
joinedGreetings = join " " greetings

-- Ausgabe: "Hallo, Alice! Hallo, Bob! Hallo, Charlie!"

Deep Dive

In Elm ist String-Interpolation nicht direkt eingebaut, weil die Sprache auf Einfachheit und Zuverlässigkeit setzt. In JavaScript kannst du `Hallo, ${name}!` schreiben, aber in Elm musst du explizite Funktionen verwenden. Früher gab es in anderen Sprachen oft Probleme mit der direkten Interpolation, wie sie etwa zu SQL-Injection führen könnte. Elm’s Ansatz vermeidet solche Sicherheitslücken von vornherein.

Alternativen zu ++ könnten eigene Hilfsfunktionen sein, die du für wiederkehrende Muster baust:

hello name = "Hallo, " ++ name ++ "!"
goodbye name = "Auf Wiedersehen, " ++ name ++ "!"

-- Verwendung
greeting = hello "Welt"
farewell = goodbye "Freund"

-- Ausgaben
-- greeting: "Hallo, Welt!"
-- farewell: "Auf Wiedersehen, Freund!"

See Also