나는 정말 거대한 해시 테이블을 가지고 있으며 해시를 변경할 때마다 전체 해시가 반환되어 내 REPL에 오류가 발생합니다. Clojure에게 값을 설정하고 nil을 리턴하도록 요청할 수있는 방법이 있습니까?alter function/assoc 함수가 nil을 반환하도록하려면 어떻게해야합니까?
감사합니다.
나는 정말 거대한 해시 테이블을 가지고 있으며 해시를 변경할 때마다 전체 해시가 반환되어 내 REPL에 오류가 발생합니다. Clojure에게 값을 설정하고 nil을 리턴하도록 요청할 수있는 방법이 있습니까?alter function/assoc 함수가 nil을 반환하도록하려면 어떻게해야합니까?
감사합니다.
번호 Clojures 데이터 유형은 변경 불가능합니다. 또한 그들은 공유 구조를 사용하므로 실제로 새로운 값을 생성하는 것은 메모리와 성능면에서 매우 저렴합니다. java -server와 같은 JVM에서 사용할 수있는 메모리를 늘릴 수있는 옵션이 있습니다. 또한 정말로 필요할 경우 변경할 수있는 Java 오브젝트를 작성할 수 있습니다.
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 ...)