1

我有以下代码:

(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

2 回答 2

5

它告诉您,您的play-loop函数仅包含函数的定义,play-loop-iter而其主体中没有其他表达式。

看起来您希望调用 toplay-loop-iter成为play-loop' 身体的一部分,但事实并非如此 - 它是play-loop-iter' 身体的一部分。检查括号。

于 2013-05-04T20:37:52.413 回答
1

之后你可能会错过一个括号(result1 (strat1 history0 history1 history2)

于 2013-05-04T20:35:28.123 回答