Об'єднання рядків

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]), тому конкатенація рядків часто відбувається так само, як і конкатенація списків.

Подивіться також: