0
我試圖分裂的50項爲不同大小的子列表清單;例如10 3 4 5。拆分列表爲不均勻子列表
我試着用take
這樣做,但這種只需要前幾個項目列表中的反覆,而不是通過索引一起移動。
有沒有人有任何建議如何做到這一點?或者可以鏈接到一個Prelude/Data.List函數,它可以幫助我。 (我環顧四周,但我在努力尋找什麼。)
我試圖分裂的50項爲不同大小的子列表清單;例如10 3 4 5。拆分列表爲不均勻子列表
我試着用take
這樣做,但這種只需要前幾個項目列表中的反覆,而不是通過索引一起移動。
有沒有人有任何建議如何做到這一點?或者可以鏈接到一個Prelude/Data.List函數,它可以幫助我。 (我環顧四周,但我在努力尋找什麼。)
的
splitAt :: Int -> [a] -> ([a], [a])
和
snd :: (a, b) -> b
一個裝配件組合的應該做的伎倆。
編輯:
splitUp :: [Int] -> [a] -> [[a]]
splitUp [] xs = [xs]
splitUp _ [] = []
splitUp (l:ls) xs = let (a,b) = splitAt l xs in a : splitUp ls b
我明白這將如何工作的第一個子列表;和最後一個。但是,我將如何使用它來獲得索引10-20的項目? – Nowandthen98
[splitAt](http://hackage.haskell.org/package/base-4.8.1.0/docs/Prelude.html#v:splitAt)。 – Mephy
['splitPlaces'(http://hackage.haskell.org/package/split-0.2.2/docs/Data-List-Split.html#v:splitPlaces) –
splitPlaces似乎是完美的。我在後面的函數中使用它。任何想法如何分配時訪問每個子列表? – Nowandthen98