Я только начал использовать Haskell и хотел написать функцию, которая, учитывая список, возвращает список, в котором каждый второй элемент был удвоен.
До сих пор я придумал следующее:
double_2nd :: [Int] -> [Int]
double_2nd [] = []
double_2nd (x:xs) = x : (2 * head xs) : double_2nd (tail xs)
Что работает, но мне было интересно, как вы, ребята, напишете эту функцию. Есть ли более общий/лучший способ или это выглядит правильно?