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ówSample 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.