因此,我一直在做此程序,该程序接收一个函数f
,一个数字a
和一个列表b
,并且它应该返回一个迭代{列出[a, f(a,b), f(f(a,b),b, ..]
并使用递归。你们知道我如何优化代码吗?
b
答案 0 :(得分:2)
calculate f a b = tail . concatMap (replicate 2) . scanl f a $ b
。
复制位可能有错误。如果是这样,则只需calculate = scanl
。
这将翻译代码,因为文本中的“ [a, f(a,b), f(f(a,b),b, ..]
”与文本相反(并且与文本本身矛盾,后者涉及“通过列表{{1}迭代 “)。