foldrをゴリ押ししてみた
fr :: (a -> b -> b) -> b -> [a] -> b
fr _ x [] = x
fr fn init (el:la) = fr fn (fn el init) la