我有两个函数(count和listOfNths),它们都带有参数并产生一个列表。我想压缩这两个函数产生的列表。我将如何去做呢?我尝试写作,zip listOfNths count
但是没有用。
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),但这并不重要。
如果我对您的理解正确,则可以使用以下简单方法进行操作map
:
fn n xs = map (\x -> (everyf n $ drop x xs, x)) [0..n-1]
如果您坚持使用zip,则必须在压缩之前评估功能:
fn n xs = zip (listOfNths n xs) (count n)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句