我正在尝试在方案中打井字游戏,当尝试引用变量时,我得到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;
答案 0 :(得分:1)
问题出在这里
(vector-set! row
(spot) ; spot is not a procedure
1)
变量spot
只是您从REPL读取的值;不要用()
包围值,这就是您在Scheme中调用过程的方式。只需将其传递:
(vector-set! row spot 1)
但是,如果您确实打算将spot
设置为过程,则应该这样声明它:
(define (spot) (read-line))