DrRacket 函数调用:在左括号后需要一个函数,但找到了一个数字

DrRacket function call: expected a function after the open parenthesis, but found a number

我刚开始在当地一所大学学习计算机科学,一切进展顺利,但我似乎无法弄清楚为什么这段代码(在 power point 演示中向我展示)会抛出一个错误,因为这就是我的教授向我们展示了 class。它的重点是让火箭从场景底部开始并停在顶部,但我在定义 H0、定义 H10、(-500(* 3 t)) 的行中不断收到这些函数错误。代码如下:

(require 2htdp/image)
(require 2htdp/universe)

(define width 500)
(define height 500)

(define e-scene(empty-scene width height))
(define rocket (image))
(define rocket-x(/ width 2))

(define H0 (-500(* 3 0)))
(define H10 (-500(* 3 10)))
(check-expect(height 0) H0)
(check-expect(height 10)H10)

(define(altitude t)
(-500(*3 t)))


(define img0 (place-image rocket rocket-x (height 0)e-scene))
(define img45 (place-image rocket rocket-x (height 45) e-scene))
(check-expect(create-rocket-scene 0)img0)
(check-expect(create-rocket-scene 45)img45)

(define (create-rocket-scene t)
  (place-image rocket rocket-x(height t)e-scene))

(animate create-rocket-scene)

每个 Scheme 列表表达式应​​该如下所示:(procedure arg1 arg2 ...).

表达式 (define H0 (-500(* 3 0))) 被读取为 (define H0 (-500 (* 3 0)))-500 不是过程(函数),因此它会抛出错误。表达式(define H10 (-500(* 3 10)))有同样的问题。

只需将这两行重写为 (define H0 (- 500 (* 3 0)))(define H10 (- 500 (* 3 10))) 并在其他表达式中添加空格 - 也许它们可以工作,但现在很难阅读。