0
(define (flip l)
  (local [(define (flip p)
            (make-posn (posn-y p)
                       (posn-x p)))]))

这只是翻转了两个 posns 的位置。它应该工作。我在括号中做错了吗?

一直给我这个错误-本地:期望在本地定义之后有一个表达式,但那里什么也没有。

4

2 回答 2

3

特殊形式在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)))
于 2013-11-02T01:01:59.527 回答
1

如果您查看 的文档local,您会发现它在定义之后需要一个正文。关闭后你什么都没有],所以它抱怨身体不见了local

我无法真正说出您在这里要做什么,但也许了解错误的原因将有助于您朝着正确的方向前进。

于 2013-11-02T00:58:57.763 回答