2012-10-08 40 views

回答

19

的毗连做你想要什么:

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的智能足以理解 哪些类型与您所要求的类型相近。

+0

酷!谢谢你的提示! :) – user1670032

5

直接回答

> concat [[1,2,3],[1,2,3],[1,2,3]] 
[1,2,3,1,2,3,1,2,3] 

,每当你想搜索的任何功能,你应该尝试hoogle。有时类型足以获取有关您需要的功能的信息。

+0

正是我在找什么!谢谢! :) – user1670032

7

有一些方法来做到这一点,你可以使用列表解析,例如:

[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]] 
+0

谢谢!这对于看到你可以做一件事的不同方式非常有用! :) – user1670032