如果我有一个列表的列表,例如
提前感谢!
[[1,2,3],[1,2,3],[1,2,3]]
,是否有任何方法在Haskell中将其转换为只包含1个列表的形式,例如[1,2,3,1,2,3,1,2,3]
?提前感谢!
Concat能够实现您想要的效果:
concat [[1,2,3],[1,2,3],[1,2,3]]
为了在将来找到这些类型的函数,您可以使用hoogle http://www.haskell.org/hoogle/
您可以搜索一个类型 - 您需要的函数是[[Int]] -> [Int]
,因此您可以进行这个搜索。顶部的函数是concat。
我应该提到,事实上
concat :: [[a]] -> [a]
它适用于任何嵌套列表,并且您也可以使用该类型在Hoogle中进行搜索。 Hoogle足够聪明,能够理解哪些类型与您所需的类型非常接近。
[y | x <- [[1,2,3],[1,2,3],[1,2,3]], y <- x]
import Control.Monad (join)
join [[1,2,3],[1,2,3],[1,2,3]]
concat [[1,2,3],[1,2,3],[1,2,3]]
或msum(与concat相同):
import Control.Monad (msum)
msum [[1,2,3],[1,2,3],[1,2,3]]
import Data.Monoid (mconcat)
mconcat [[1,2,3],[1,2,3],[1,2,3]]
直接回答
> concat [[1,2,3],[1,2,3],[1,2,3]]
[1,2,3,1,2,3,1,2,3]
每当您想搜索任何函数时,请尝试使用hoogle。有时,仅通过类型信息即可获取所需函数的有关信息。