反转haskell 3中的列表

时间:2016-05-03 11:12:32

标签: haskell

例如

  • 输入:[1..10]
  • 输出:[1,10,2,9,3,8,4,7,5,6,6,5,7,4,8,3,9,2,10,1]

我试过这个

fon(x:y:xs) =reverse (x:xs)
fun (x:y:xs) = x : (fon xs)

2 个答案:

答案 0 :(得分:3)

怎么样:

interweave :: [a] -> [a]
interweave zs = f zs (reverse zs)
    where f xs ys = concat $ zipWith (\ x y -> [x,y]) xs ys

例如

λ> interweave [1..10]
[1,10,2,9,3,8,4,7,5,6,6,5,7,4,8,3,9,2,10,1]

答案 1 :(得分:1)

因为这看起来像是家庭作业,所以我会提供一些提示。

您需要原始列表和反向列表。尝试像

这样的东西
foo :: [a] -> [a]
foo xs = bar xs (reverse xs)

bar :: [a] -> [a] -> [a]
...