我刚开始使用Haskell并想编写一个函数,给定一个列表,返回一个列表,其中每个第二个元素都被加倍.
到目前为止,我已经想出了这个:
double_2nd :: [Int] -> [Int]
double_2nd [] = []
double_2nd (x:xs) = x : (2 * head xs) : double_2nd (tail xs)
Run Code Online (Sandbox Code Playgroud)
哪个有效,但我想知道你们怎么会写这个功能.是否有更常见/更好的方式或看起来对吗?
haskell ×1