【发布时间】:2019-06-10 23:25:39
【问题描述】:
所以我一直在做这个程序,它接收一个函数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)
【问题讨论】:
-
scanl f a (repeat b)呢? -
提示:
doit f (x:xs) = x : do_the_full_recursive_step f xs -
“你们知道如何优化我的代码吗?” “优化”是什么意思?你给它的表现计时了吗?你在问什么?
-
谢谢。 @AJFarmar 不,我的意思是缩短它的方法。
-
你确定这段代码能达到你想要的效果吗?
标签: list function haskell recursion optimization