删除元素后,在Racket中为列表使用相同名称时出现问题

删除元素后,在Racket中为列表使用相同名称时出现问题,racket,Racket,我正在尝试在Racket中创建一个简单的Hangman应用程序。我使用一个列表数据结构来保存字母表中的字母,并删除玩家在猜列表中的字母时猜到的字母。但是,我得到以下错误: (定义未使用的字母(删除“a”未使用的字母)) 定义值:不允许赋值 无法重新定义常量 常量:未使用的字母 在列表被更改后,我似乎无法重新使用“未使用的字母”作为列表?有没有办法解决这个问题,或者我应该采取另一种方法?要为现有变量指定一个新值,可以使用set: (set! unguessed-letters (remove "a

我正在尝试在Racket中创建一个简单的Hangman应用程序。我使用一个列表数据结构来保存字母表中的字母,并删除玩家在猜列表中的字母时猜到的字母。但是,我得到以下错误:

(定义未使用的字母(删除“a”未使用的字母)) 定义值:不允许赋值
无法重新定义常量
常量:未使用的字母


在列表被更改后,我似乎无法重新使用“未使用的字母”作为列表?有没有办法解决这个问题,或者我应该采取另一种方法?

要为现有变量指定一个新值,可以使用
set

(set! unguessed-letters (remove "a" unguessed-letters))
但是,如果您使用的是
set要像这样改变变量,您正在进行所谓的命令式编程。虽然这是允许在球拍,这通常不是最好的方式去做。看