Рассмотрим каждую строку в списке в виде списка символов
["hello","stack","overflow"] :: [[Char]]
Конкатенация - это процесс объединения нескольких списков в один. Он должен иметь следующий вид:
concat :: [[a]] -> [a]
Если вы будете иметь такую функцию, вы получите половину работы. Вы ищете способ получить
["hellostackoverflow"]
в результате конкатенации. Опять же, посмотрите на его типа:
["hellostackoverflow"] :: [[Char]]
Это тот же тип, как вы были в начале исключением того, что есть только один элемент в списке. Итак, теперь вам нужна функция, которая помещает что-то в список. Он должен иметь тип
putToList :: a -> [a]
После того, как вы будете иметь оба concat
и putToList
функции, ваше решение будет почти готово. Последнее, что вам нужно сделать, это составить его так:
myConcatenation = putToList . concat
Я предлагаю вам использовать Hoogle для поиска существующей функции от его типа.
Вы хотите, чтобы в результате была одна строка или список, содержащий одну строку? – Lee
'concat' - если вы хотите, чтобы это в списке, используйте' return. concat' (не забывайте аннотацию типа, если вы попробуете ее в GHCi: 'return. concat $ [" hello "," stack "," overflow "] :: [String]') – Carsten
@Lee Я имел в виду список, содержащий одна строка. спасибо, это сработало. Отправьте его как ответ, чтобы я мог принять его: D. – Memphis