Чтобы объединить списки в Haskell, вы можете использовать несколько методов. Я объясню некоторые из них и приведу примеры кода:
- Использование оператора (++):
Оператор (++) используется для объединения двух списков.
concatenateLists :: [a] -> [a] -> [a]
concatenateLists list1 list2 = list1 ++ list2
Пример использования:
main :: IO ()
main = do
let list1 = [1, 2, 3]
let list2 = [4, 5, 6]
let concatenated = concatenateLists list1 list2
print concatenated
Выход:
[1, 2, 3, 4, 5, 6]
- Использование функции
concat
:
Функцияconcat
принимает список списков и объединяет их в один список.
concatenateLists :: [[a]] -> [a]
concatenateLists lists = concat lists
Пример использования:
main :: IO ()
main = do
let lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
let concatenated = concatenateLists lists
print concatenated
Выход:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
- Использование функции
foldr
:
Функцияfoldr
может использоваться для объединения списков путем объединения элементов с помощью оператора (++).
concatenateLists :: [[a]] -> [a]
concatenateLists lists = foldr (++) [] lists
Пример использования:
main :: IO ()
main = do
let lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
let concatenated = concatenateLists lists
print concatenated
Выход:
[1, 2, 3, 4, 5, 6, 7, 8, 9]