Haskell将函数递归地应用到每个元素上,但是首先?

时间:2019-01-16 19:59:38

标签: list function haskell recursion optimization

因此,我一直在做此程序,该程序接收一个函数f,一个数字a和一个列表b,并且它应该返回一个迭代{列出[a, f(a,b), f(f(a,b),b, ..]并使用递归。你们知道我如何优化代码吗?

b

1 个答案:

答案 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}迭代 “)。