【发布时间】:2018-05-06 23:16:33
【问题描述】:
首先让我说我在 Scheme/Racket 方面完全是新手。我正在尝试实现以下公式:
αi = (3/h)((ai+1 – ai) – (ai – ai-1))
这是我定义函数的方式:
(define alpha_values (lambda (y_values h n) (...))
我希望它使用y_values 列表以及一些常量h 和一个数字n 运行该函数,然后计算并返回一个 α列表> 价值观。 n 将从 1 变为 n-1,因此不会迭代列表的第一个和最后一个元素。
例如,如果y_values 的列表是'(2 4 6 8) 和h 是1 并且n 是3 那么应该有两个α 个值返回:一个用于 i=1 (y=4),一个用于 i=2 (y=6),像这样:3*((6-4)-(4-2)) = 0 和 3*((8-6)- (6-4)) = 0 为 α 返回'(0 0)。
说实话,我什至不知道如何开始实施这一点。我考虑过使用map,但我不知道这样做时是否可以跳过第一个和最后一个元素。我已经尝试使用car 和cdr 递归地这样做,但是在没有第一个元素的情况下再次递归调用函数时,我遇到了“丢失”计算所需列表中的一个元素的问题。对于如何实现这个公式的一些见解,我将不胜感激——不是答案,只是关于如何让球滚动的想法。
【问题讨论】:
标签: scheme racket map-function