2013-05-04 89 views
0

我有下面的代碼「的內部定義序列後,沒有任何表情」:在拍一個奇怪的錯誤

(define (play-loop strat0 strat1 strat2 game-limit) 
(define (play-loop-iter strat0 strat1 strat2 count history0 history1 history2 limit) 
    (cond ((= count limit) (print-out-results history0 history1 history2 limit)) 
     (else (let ((result0 (strat0 history0 history1 history2)) 
        (result1 (strat1 history0 history1 history2) 
        (result2 (strat2 history0 history1 history2))) 
       (play-loop-iter strat0 strat1 strat2 (+ 1 count) 
           (extend-history result0 history0) 
           (extend-history result1 history1) 
           (extend-history result2 history2) 
           limit))))) 
(play-loop-iter strat0 strat1 strat2 0 '() '() '() game-limit))) 

當我在球拍上運行它,它給了我下面的錯誤:

開始(可能是隱含的):在一系列內部定義之後沒有表達式:...

我似乎一切正常,但有一個錯誤,看起來我很有趣。

什麼問題?

謝謝...

回答

4

它告訴你,你的play-loop功能只包含play-loop-iter函數的定義,並在它的身上沒有其他的表情後缺少一個括號。

看起來你想要呼叫play-loop-iter成爲play-loop的身體的一部分,但它不是 - 它是play-loop-iter的身體的一部分。檢查括號。

+0

它的工作謝謝你:) – user2870 2013-05-04 21:13:07

1

你很可能(result1 (strat1 history0 history1 history2)

+0

確實,他在那裏錯過了一個括號,但那不是導致那個特定錯誤信息的原因。該錯誤消息將是「語法錯誤(缺少綁定對或主體)」。修復其他錯誤後,他可能會收到該錯誤消息。 – sepp2k 2013-05-04 20:43:48

+0

我建議修正所有語法錯誤。 – GoZoner 2013-05-04 20:46:17

+0

是的,它修復了語法錯誤非常感謝你,但也有一些其他的錯誤。 – user2870 2013-05-04 21:13:55