我正在尝试在 Racket 中创建一个简单的 Hangman 应用程序。我使用列表数据结构来保存字母表中的字母,并在玩家从列表中猜测字母时删除玩家猜测的字母。但是,我收到以下错误:
(define unguessed-letters (remove "a" unguessed-letters)) define-values: assignment disallowed;
cannot re-define a constant
constant: unguessed-letters
看起来我无法在列表更改后重新使用“未猜出的字母”?有没有办法解决这个问题或者我应该采取不同的方法?
最佳答案
要将新值分配给现有变量,您可以使用set!
:
(set! unguessed-letters (remove "a" unguessed-letters))
但是,如果您使用 set!
来改变这样的变量,那么您正在执行所谓的命令式编程。尽管 Racket 中允许这样做,但这通常不是最好的方法。请参阅Guidelines for Using Assignment .
关于racket - 删除元素后,在 Racket 中的列表中使用相同名称时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23038902/