Haskell を使い始めたばかりで、リストを指定すると、2 番目の要素がすべて 2 倍になったリストを返す関数を書きたいと思いました。
これまでのところ、私はこれを思いつきました:
double_2nd :: [Int] -> [Int]
double_2nd [] = []
double_2nd (x:xs) = x : (2 * head xs) : double_2nd (tail xs)
どちらが機能しますが、皆さんがその関数をどのように書くのか疑問に思っていました. より一般的な/より良い方法はありますか、それともこれは正しいように見えますか?