0
我有两个函数(count和listOfNths),它们都带参数并产生一个列表。我想压缩这两个函数产生的列表。我会怎么做呢? 我试过写zip listOfNths count
但那没用。由两个函数(Haskell)生成的zip列表
count n = [ x | x <- [0..n-1]]
everyf n [] = []
everyf n as = head as : everyf n (drop n as)
listOfNths :: Int -> [a] -> [[a]]
listOfNths n xs = map (\x -> everyf n (drop x xs)) [0..n-1]
只是一个旁注:函数listOfNths使用另一个函数(everyf),但这并不重要。
附注,'[x | x < - ys]'相当于'ys',所以'count n = [0..n-1]'就足够了。 – bheklilr 2015-03-30 21:10:38
我认为你想要做的是'\ n xs - > zip(listOfNths n xs)(count n)'。这会检测,但本身就是一个功能。你遇到的问题在这里,因为'zip'希望它的两个输入都是列表,但'listOfNths'和'count'都是返回列表的函数。你需要提供这些输入,然后才能将它们压缩在一起。 – bheklilr 2015-03-30 21:12:54
''fn n xs =('zip' [0..n-1])。转置。 chunksOf n $ xs''。 'chunksOf'在['Data.List.Split'](https://hackage.haskell.org/package/split-0.2.2/docs/Data-List-Split.html)中。 – 2015-03-30 23:45:01