删除元素后,在Racket中使用相同名称的列表时遇到问题

时间:2014-04-13 03:52:35

标签: racket

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

  

(定义未编辑的字母(删除" a"未编辑的字母))   define-values:不允许赋值;
   无法重新定义常数     常数:未经编辑的字母

看起来我无法重复使用" unguessed-letters"更改后的列表?有没有办法解决这个或我应该采取的不同方法?

1 个答案:

答案 0 :(得分:2)

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

(set! unguessed-letters (remove "a" unguessed-letters))

但是,如果你使用set!来改变这样的变量,你就会进行所谓的命令式编程。尽管在Racket中允许使用它,但它通常不是最好的方法。请参阅Guidelines for Using Assignment