压缩两个函数产生的两个列表(Haskell)

平房

我有两个函数(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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章