Łączenie łańcuchów znaków

Haskell:
Łączenie łańcuchów znaków

Jak to zrobić:

main :: IO ()
main = do
    let hello = "Witaj, "
    let world = "świecie!"
    putStrLn (hello ++ world)  -- Wykorzystanie operatora ++ do łączenia napisów
    putStrLn $ concat ["Data: ", show (2023, 3, 15)] -- Funkcja concat do łączenia listy napisów

Sample output:

Witaj, świecie!
Data: (2023,3,15)

Głębsze spojrzenie:

String w Haskell to lista znaków, więc łączenie napisów odbywa się przez konkatenację list. Operator ++ jest standardem od początku języka. Alternatywą może być concat, gdy łączymy listę stringów, czy Data.Text, biblioteka dla dużych napisów.

Haskell był zaprojektowany z myślą o leniwej ewaluacji, więc połączone napisy nie są od razu tworzone w pamięci, co jest wydajne. Należy jednak pamiętać, że nadużycie ++ może prowadzić do kiepskiej wydajności dla dużych napisów ze względu na konieczność przechodzenia przez całą listę. Tutaj z pomocą przychodzi Data.Text, oferując szybszą alternatywę ze stałym czasem dorzucania na końcu.

Zobacz również: