Итак, я делал эту программу, которая получает функцию f
, число a
и список b
, и она должна возвращать список [a, f(a,b), f(f(a,b),b, ..]
, повторяющийся в списке b
и использующий рекурсию. Ребята, вы знаете, как я могу оптимизировать свой код?
calculate :: (a -> b -> a) -> a -> [b] -> [a]
help :: (a -> b -> a) -> a -> [b] -> [a]
help f a (x:xs) = (f a x) : (calculate f (f a x) xs)
help f a [] = []
calculate f a b = a : (help f a b)