Scheme “球拍上的一个奇怪的错误”;在一系列内部定义之后没有表达式“;

Scheme “球拍上的一个奇怪的错误”;在一系列内部定义之后没有表达式“;,scheme,racket,Scheme,Racket,我有以下代码: (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 ((result

我有以下代码:

(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)))
当我在racket中运行它时,会出现以下错误:

begin(可能是隐式的):在中的一系列内部定义之后没有表达式:

我似乎一切都很好,但有一个错误,看起来我很有趣

有什么问题


谢谢……

您可能在
之后缺少一个paren(result1(strat1 history0 history1 history2)
您可能在
之后缺少一个paren(result1(strat1 history0 history1 history2)

它告诉您,您的
播放循环
函数只包含
播放循环iter
函数的定义,而其主体中没有其他表达式


看起来您希望对
play loop iter
的调用成为
play loop
主体的一部分,但它不是-它是
play loop iter
主体的一部分。请检查括号。

它告诉您的
play loop
函数只包含
play loop iter
函数的定义,没有其他定义表达在它的身体里


看起来你想让对
play loop iter
的调用成为
play loop
主体的一部分,但它不是-它是
play loop iter
主体的一部分。检查括号。

他确实缺少一个括号,但这不是导致特定错误消息的原因。错误消息是“语法错误(缺少绑定对或主体)”。他可能会在修复其他错误后收到该错误消息。是的,它修复了语法错误,非常感谢,但还有一些其他错误。他确实缺少括号,但这不是导致该特定错误消息的原因。错误消息是”语法错误(缺少绑定对或主体)”。在修复其他错误后,他可能会收到该错误消息。是的,它修复了语法错误,非常感谢,但还有一些其他错误。