如果我有一個列表列表,比如說[[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