1
在Haskell中,如何将x个数字列表更改为n个n个数字列表?Haskell:将100个数字的列表更改为10个数字的10个列表?
第一子列表将有编号第一到第十,第二名单11日至20日...
myFunction的:: [INT] - > [INT]]
在Haskell中,如何将x个数字列表更改为n个n个数字列表?Haskell:将100个数字的列表更改为10个数字的10个列表?
第一子列表将有编号第一到第十,第二名单11日至20日...
myFunction的:: [INT] - > [INT]]
有一个在Data.List.Split
的chunksOf
功能:
chunksOf 2 [0, 1, 2, 3] -- [[0, 1], [2, 3]]
另外,我们已经有splitAt
在prelude
,与chunksOf
可以轻松实现:
chunksOf :: Int -> [a] -> [[a]]
chunksOf n [] = []
chunksOf n xs = let (as, bs) = splitAt n xs in as : chunksOf n bs
可能会稍微简单一点,阅读时采用拖放和不需要库。
chunksOf :: Int -> [a] -> [[a]]
chunksOf _ [] = []
chunksOf n xs = take n xs : chunksOf n (drop n xs)
注意到,在旧版本的GHC,你必须“阴谋分裂安装”(我认为前7.6) – epsilonhalbe
为什么啊,为什么不前奏等效?如果我正在写一些快速和小型的东西,我不想依赖于拆分包。 –