我有一个字符串列表(见下文)如何将这些字符串连接到一个包含一个字符串的列表中。
["hello","stack","overflow"]
到
["hellostackoverflow"]
我只允许导入Data.Char和Data.List
答案 0 :(得分:7)
将列表中的每个字符串视为字符列表
["hello","stack","overflow"] :: [[Char]]
连接是将多个列表连接成一个列表的过程。它必须具有以下类型:
concat :: [[a]] -> [a]
如果你有这样的功能,你将完成一半的工作。你正在寻找一种方法来获得
["hellostackoverflow"]
由于连接。再一次,看看它的类型:
["hellostackoverflow"] :: [[Char]]
它与您在开头时的类型相同,只是列表中只有一个元素。所以现在你需要一个将某些东西放入列表的函数。它必须有一个类型
putToList :: a -> [a]
一旦您同时拥有concat
和putToList
功能,您的解决方案就会准备就绪。你需要做的最后一件事就是这样做:
myConcatenation = putToList . concat
我建议您使用Hoogle按其类型搜索现有功能。
答案 1 :(得分:1)
您还可以使用列表monad将列表缩减为单个字符串,然后将结果重新包装到列表中。
> [["hello", "stack", "overflow"] >>= id]
["hellostackoverflow"]
前面的内容避免明确使用Control.Monad.join
:
> import Control.Monad
> [join ["hello", "stack", "overflow"]
["hellostackoverflow"]
答案 2 :(得分:0)
concat [“hello”,“stack”,“overflow”]
“hellostackoverflow”