(define (flip l)
(local [(define (flip p)
(make-posn (posn-y p)
(posn-x p)))]))
這只是翻轉兩個posns的位置。它應該工作。我對括號做了什麼錯誤嗎?使用本地球拍
不斷給我這個錯誤 - 本地:期望本地定義後的表達式,但沒有。
(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)))
如果您檢查documentation for local
,您會發現它在定義後面會出現正文。你在關閉]
之後沒有任何東西,所以它抱怨local
身體缺失。
我真的不知道你在這裏做什麼,但也許理解錯誤的原因將有助於你朝着正確的方向前進。
你想要定義一個函數嗎?如果是這樣,你爲什麼試圖使用「本地」? – DaoWen