我正在尝试在方案中制作井字游戏,当尝试引用变量时,我得到application: not a procedure;
(display "1 turn")
(define spot (read-line))
(vector-set! row
(spot)
1)
(print-gameboard) ; just a display function
如果我给它一个,我希望这会将向量更改为1 0 0 0 0 0 0 0 0
,但我只是得到application: not a procedure;
问题是:
(vector-set! row
(spot) ; spot is not a procedure
1)
变量spot
只是您从 REPL 中读取的值;不要用()
括起来的值,这就是您在 Scheme 中调用过程的方式。只需传递它:
(vector-set! row spot 1)
但是,如果您真的打算spot
成为一个过程,那么应该这样声明它:
(define (spot) (read-line))