clojure - 我如何在 clojure 中创建一个大向量

标签 clojure

如何分配具有 1042 个空索引的向量?
它的存储空间会被延迟分配吗?
像这样

(def a (array-creation-function 1042))
(def b (assoc a 1041 42))
(b 1041) 
--> 42

最佳答案

向量似乎并不稀疏,因此您必须在创建向量时为每个索引指定一个值。最简单的方法似乎是在序列上调用 (vec)。

(vec (repeat 1042 nil))

这些值似乎不是懒惰地创建的。

关于clojure - 我如何在 clojure 中创建一个大向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155485/

相关文章:

design-patterns - 在 Clojure 中实现撤消/重做的模式

clojure 递归重构代码

clojure - 写这个的最惯用的 Clojure 方式是什么?

clojure - Clojure 中的迭代器 block ?

multithreading - 当我在 Clojure 中定义来自多个线程的变量时会发生什么?

clojure - 为什么 Clojure 在执行计算后挂起?

clojure - 在 VS CODE 中运行 (lein) REPL

clojure - 莱宁根和艾维 repo

clojure - 使用 REPL 检查 Quil 中有趣模式的状态?