Scheme DrRacket-为什么这个数字是负数?
所以我不明白为什么我的数字在这个函数中是负数。此外,calculate的输入应该是一个相同的3的列表,如果有人也能帮我,那将不胜感激。多谢各位Scheme DrRacket-为什么这个数字是负数?,scheme,racket,Scheme,Racket,所以我不明白为什么我的数字在这个函数中是负数。此外,calculate的输入应该是一个相同的3的列表,如果有人也能帮我,那将不胜感激。多谢各位 calculate获取列表中的第一个数字,然后将其乘以列表中的第二个数字,然后从输入列表中减去第三个数字 ((calculate'(837))”(48229))应返回”(29412344) 除此之外,你的减法是颠倒的。这将有助于: (define (calculate n m o) (lambda (L) (map (lambda (e)
calculate
获取列表中的第一个数字,然后将其乘以列表中的第二个数字,然后从输入列表中减去第三个数字
((calculate'(837))”(48229))
应返回”(29412344)
除此之外,你的减法是颠倒的。这将有助于:
(define (calculate n m o)
(lambda (L)
(map (lambda (e)
(- (* m (+ n e)) o))
L)))
然后
编辑:要使用列表调用
计算
,您可以使用应用
来分解结构:
(define (calculate nums)
(apply (lambda (n m o)
(lambda (L)
(map (lambda (e)
(- (* m (+ n e)) o))
L)))
nums))
然后
哪个数字是负数?什么是“相同的3个列表”?示例输出与示例输入的关系究竟如何?代码中存在许多算术错误。例如,您的“测试”将一个参数传递给
caclulate
,而它本身有3个参数。如果L
是一个列表,它返回的函数调用带有4个参数的calculate
,太多了一个参数?
,因为您的描述只描述了“列表”上的操作,为什么有两个列表?如果列表中的元素少于3个,会发生什么?什么是calculateHelper
?您的意思是调用该函数而不是递归调用calculate
?什么是makeSmasher
?对不起,makeSmasher是我用calculate替换的原始名称,这样名称看起来就不那么奇怪了。如何更改它,使calculate的输入是一个包含相同3个数字的列表。那么这个调用看起来是这样的((计算’(837))'(48229)?
> ((calculate 8 3 7) '(4 8 2 9))
'(29 41 23 44)
(define (calculate nums)
(apply (lambda (n m o)
(lambda (L)
(map (lambda (e)
(- (* m (+ n e)) o))
L)))
nums))
> ((calculate '(8 3 7)) '(4 8 2 9))
'(29 41 23 44)