【发布时间】:2015-11-26 20:15:35
【问题描述】:
我需要创建一个大小为 800000 的布尔值(0 或 1)数组。我还需要能够检查/更改索引处的值,只要可以。 我不能使用向量或命令set!。
我正在查看文档,发现 build-list [ 1 ]。所以我做了一个这样的零数组:
(define arrBool (build-list 800000 (lambda (x) (* x 0))))
我知道我可以使用 list-ref [ 2 ] 访问索引。但是,我在文档中找不到有关如何更改该索引处的值的任何内容。例如,如果我想将索引 27392 处的 0 更改为 1,我将如何在不创建全新列表的情况下执行此操作?
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
在 Racket 中,列表是不可变的,所以你不能这样做。您应该使用 Racket、教学语言还是传统的 Scheme?
-
我们应该使用 Racket。那我还有其他方法可以做到这一点吗?起初我使用向量,但我的教授不接受它,因为他希望我们使用常规列表,所以我不知道如何继续。
-
你可以使用盒子;我怀疑这是你教授的意图,但我会发布一个例子。
标签: arrays boolean scheme racket bitvector