【发布时间】:2018-06-15 19:18:02
【问题描述】:
再次返回另一个球拍问题。一般是高阶函数的新手,所以给我一些余地。
目前正在尝试使用 foldr/foldl 函数而不是递归来查找交替和。
例如(altsum '(1 3 5 7)) 应该等于 1 - 3 + 5 - 7,总计为 -4。
我想了几种可能的方法来解决这个问题:
- 在一个列表中获取要相加的数字,在另一个列表中获取要减去的数字,然后将它们折叠在一起。
- 不知何故使用列表长度来确定是减还是加。
- 可能会生成某种 '(1 -1 1 -1) 掩码,分别相乘,然后折叠相加。
但是,当列表中的每个项目的每个操作都不相同时,我不知道从哪里开始使用 foldl/foldr,因此我无法实现我的任何想法。此外,每当我尝试在我的 foldl 的匿名类中添加超过 2 个变量时,我都不知道之后哪些变量引用了匿名类中的哪些变量。
任何帮助或指点将不胜感激。
【问题讨论】:
标签: scheme racket fold alternating