(define (flip l)
(local [(define (flip p)
(make-posn (posn-y p)
(posn-x p)))]))
这只是翻转了两个 posns 的位置。它应该工作。我在括号中做错了吗?
一直给我这个错误-本地:期望在本地定义之后有一个表达式,但那里什么也没有。
特殊形式在local
定义之后需要一个主体,所以基本上你错过了对 的调用flip
:
(define (flip l)
(local [(define (flip p)
(make-posn (posn-y p)
(posn-x p)))]
(flip l)))
...但是local
在这里使用是完全没有必要的!可以直接达到同样的效果:
(define (flip p)
(make-posn (posn-y p)
(posn-x p)))
如果您查看 的文档local
,您会发现它在定义之后需要一个正文。关闭后你什么都没有]
,所以它抱怨身体不见了local
。
我无法真正说出您在这里要做什么,但也许了解错误的原因将有助于您朝着正确的方向前进。