Haskell:
Об'єднання рядків
Як це зробити:
-- Спосіб 1: Використання оператора (++)
hello :: String
hello = "Привіт"
world :: String
world = "Світ"
main :: IO ()
main = putStrLn (hello ++ ", " ++ world ++ "!")
-- Вивід: Привіт, Світ!
-- Спосіб 2: Використання функції concat
parts :: [String]
parts = ["Привіт", ", ", "Світ", "!"]
main :: IO ()
main = putStrLn (concat parts)
-- Вивід: Привіт, Світ!
В глибину:
Історичний контекст: В Haskell конкатенація рядків вважається базовою операцією і її використання може бути простежено аж до його функціональних корінів в Lambda-рахунку.
Альтернативи: В Haskell існують різні шляхи конкатенації. Оператор (++)
простий, але при конкатенації великої кількості рядків він може бути неефективним. Функції як concat
, unwords
, або intercalate
з модуля Data.List
надають більшу гнучкість та ефективність.
Деталі реалізації: У Haskell рядки внутрішньо представлені як списки символів ([Char]
), тому конкатенація рядків часто відбувається так само, як і конкатенація списків.