(define play-with-turns
(lambda (game-state player)
(cond
((over? game-state) (announce-winner player))
((equal? player 'human)
(play-with-turns (human-move game-state) 'computer))
((equal? player 'computer)
(play-with-turns (computer-move game-state) 'human)))))
equal? is an equality predicate that can be used on non-numbers.
The (as yet) undefined procedures called by play-with-turns: