make-posn returns #<posn> 而不是posn

make-posn returns #<posn> instead of posn

我正在尝试感受 Scheme 中的绘图库,但我已经遇到了问题。

(define defaultpos (make-posn 400 400))
(start 800 800)
(draw-circle defaultpos 10 'green)

理论上,这应该打开一个新的 window,中间有一个绿色圆圈。相反,我收到此错误消息:

draw-circle: expects a posn as first argument, given #<posn>

我试过只制作一个列表,其中有两个元素作为位置,但这显然行不通。接下来,我检查了 defaultpos 是否实际上是一个 posn 结构,它是。

(posn? defaultpos)
> #t

有人可以帮我吗?

您确定您使用的是正确的语言和导入吗?将您的语言设置为 "beginning student" 并试试这个,它对我有用:

(require htdp/draw)

(define defaultpos (make-posn 400 400))
(start 800 800)
(draw-circle defaultpos 10 'green)