我有一个非常庞大的哈希表,每当我尝试更改哈希时,都会返回整个哈希值,这会导致我的REPL崩溃。有没有办法可以让Clojure设置值并返回nil?
谢谢。
答案 0 :(得分:7)
dorun
始终返回nil
:
(dorun (alter ...))
如果您只想阻止REPL打印大量数据结构,请使用*print-level*
或*print-length*
。
user> (set! *print-level* 2)
2
user> {:foo {:bar {:baz {:quux 1}}}}
{:foo {:bar #}}
user> (set! *print-length* 2)
2
user> (range 100)
(0 1 ...)
答案 1 :(得分:1)
没有。 Clojures数据类型是不可变的。它们也使用共享结构,因此实际创建新值对于内存和性能来说非常便宜。有一些选项可以增加JVM可用的内存,例如java -server。如果你真的需要它们,你也可以创建可变的Java对象。