将列表理解转化为功能应用

时间:2014-07-09 19:34:49

标签: haskell list-comprehension

我有一个用列表理解写的函数。作为一种学习,我决定尝试使用map,zip,fold等将此功能转换为功能性应用程序。我很难转换这个特定的应用程序。

它正在做什么似乎是不合理的,但它是更大功能的一部分,我想让这件作品先行。

combination :: Int -> [a] -> [([a],[a])]
combination 0 xs     = [([],xs)]
combination n (x:xs) = [ (x:ys,zs) | (ys,zs) <- combination (n-1) xs ]

1 个答案:

答案 0 :(得分:2)

这只是一个map

combination :: Int -> [a] -> [([a],[a])]
combination 0 xs     = [([],xs)]
combination n (x:xs) = map (\(ys, zs) -> (x:ys,zs)) (combination (n-1) xs)