Scheme DrRacket-为什么这个数字是负数?

Scheme DrRacket-为什么这个数字是负数?,scheme,racket,Scheme,Racket,所以我不明白为什么我的数字在这个函数中是负数。此外,calculate的输入应该是一个相同的3的列表,如果有人也能帮我,那将不胜感激。多谢各位 calculate获取列表中的第一个数字,然后将其乘以列表中的第二个数字,然后从输入列表中减去第三个数字 ((calculate'(837))”(48229))应返回”(29412344) 除此之外,你的减法是颠倒的。这将有助于: (define (calculate n m o) (lambda (L) (map (lambda (e)

所以我不明白为什么我的数字在这个函数中是负数。此外,calculate的输入应该是一个相同的3的列表,如果有人也能帮我,那将不胜感激。多谢各位

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)