Haskellでは、x個の数字のリストをn個の数字のn個のリストにどのように変更しますか?
最初のサブリストには 1 番目から 10 番目までの番号があり、2 番目のリストには 11 番目から 20 番目までの番号があります...
myFunction :: [Int] -> [[Int]]
Haskellでは、x個の数字のリストをn個の数字のn個のリストにどのように変更しますか?
最初のサブリストには 1 番目から 10 番目までの番号があり、2 番目のリストには 11 番目から 20 番目までの番号があります...
myFunction :: [Int] -> [[Int]]
chunksOf
に機能がありますData.List.Split
:
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)