如果我有一个列表列表,比如说[[1,2,3],[1,2,3],[1,2,3]]
,Haskell有什么办法可以将它变成1个列表,比如[1,2,3,1,2,3,1,2,3]
?haskell - 将列表的列表变成一个列表
在此先感谢!
如果我有一个列表列表,比如说[[1,2,3],[1,2,3],[1,2,3]]
,Haskell有什么办法可以将它变成1个列表,比如[1,2,3,1,2,3,1,2,3]
?haskell - 将列表的列表变成一个列表
在此先感谢!
的毗连做你想要什么:
concat [[1,2,3],[1,2,3],[1,2,3]]
要在将来找到这些各种各样的功能,你可以使用hoogle http://www.haskell.org/hoogle/
您可以搜索类型 - 你需要的功能是[[Int]] -> [Int]
,所以你可以做this search。顶层函数是concat。
我要指出,其实
concat :: [[a]] -> [a]
因此,工程名单中的任何名单上,你也可以很愉快地搜索 hoogle与该类型来代替。虽然Hoogle的智能足以理解 哪些类型与您所要求的类型相近。
直接回答
> concat [[1,2,3],[1,2,3],[1,2,3]]
[1,2,3,1,2,3,1,2,3]
,每当你想搜索的任何功能,你应该尝试hoogle。有时类型足以获取有关您需要的功能的信息。
正是我在找什么!谢谢! :) – user1670032
有一些方法来做到这一点,你可以使用列表解析,例如:
[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函数:
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]]
或mconcat(与CONCAT相同):
import Data.Monoid (mconcat)
mconcat [[1,2,3],[1,2,3],[1,2,3]]
谢谢!这对于看到你可以做一件事的不同方式非常有用! :) – user1670032
酷!谢谢你的提示! :) – user1670032