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.