2014-09-15 4 views
0

Мне было интересно, существует ли стандартная функция для объединения/объединения всех элементов из списка. Кажется, я не могу найти его.Combine listitems Haskell

Так, например:

combine["abc","def"] should result in ["abcdef"] 
+3

Вы хотите, чтобы он возвращал '[" abcdef "]' или '" abcdef "'? – bheklilr

+1

То, что вы ищете, является concat. – karakfa

ответ

2

Let me Hoogle that for you ...

В целом, понятие "объединение", "объединение", захватывается Monoid класса . Он имеет функцию mappend для объединения двух значений и mconcat для выравнивания всего списка.


На самом деле, Semigroup достаточно ... при условии, что список не пуст.

+0

Вы хотите включить foldl и foldr? – AndrewC

+0

Я нашел ребята решения. Спасибо за помощь. replicate 1 (concat ["abc", "def"]) – Pidaji

+0

@Pidaji: 'replicate 1' sure works, но не совсем точно. _Why_ вам нужен внешний список вообще, если он содержит только один элемент? Если у вас действительно есть веская причина, просто используйте '[concat [" abc "," def "]]'. (Или: '(: []) $ concat [" abc "," def "]' или 'return $ concat [" abc "," def "]'. – leftaroundabout