为什么我必须在org.clojure/clojure-contrib中添加依赖项才能在中使用dissoc?

为什么我必须在org.clojure/clojure-contrib中添加依赖项才能在中使用dissoc?,clojure,Clojure,使用$lein new app my proj创建项目后,我无法导入clojure.contrib.core以便在中使用dissoc $ lein repl REPL-y 0.3.0 Clojure 1.5.1 Docs: (doc function-name-here) (find-doc "part-of-name-here") Source: (source function-name-here) Javadoc: (javadoc java-object

使用
$lein new app my proj
创建项目后,我无法导入clojure.contrib.core以便在中使用dissoc

$ lein repl
REPL-y 0.3.0
Clojure 1.5.1
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

my-proj.core=> (require '[clojure.contrib.core :as cc])

FileNotFoundException Could not locate clojure/contrib/core__init.class or clojure/contrib/core.clj on classpath:   clojure.lang.RT.load (RT.java:443)
已加载的库显示clojure.contrib.core库未加载:

my-proj.core=> (loaded-libs)
#{clojure.core.protocols clojure.instant clojure.java.browse clojure.java.io clojure.java.javadoc clojure.java.shell clojure.main clojure.pprint clojure.repl clojure.set clojure.stacktrace clojure.string clojure.template clojure.test clojure.tools.nrepl clojure.tools.nrepl.ack clojure.tools.nrepl.bencode clojure.tools.nrepl.middleware clojure.tools.nrepl.middleware.interruptible-eval clojure.tools.nrepl.middleware.load-file clojure.tools.nrepl.middleware.pr-values clojure.tools.nrepl.middleware.session clojure.tools.nrepl.misc clojure.tools.nrepl.server clojure.tools.nrepl.transport clojure.uuid clojure.walk complete.core my-proj.core}

但是,如果我在project.clj中将依赖项添加到
[org.clojure/clojure-contrib“1.2.0”]
,我可以要求clojure.contrib.core并在广告中使用dissoc。从我所读到的,这应该是没有必要的。我做错了什么?

核心语言的函数中没有dissoc,尽管它在中可用。在现代clojure中使用1.2 clojure.contrib是完全不受支持的,如果它能工作,那只是一种侥幸。最好不要包含它。使用孵化器中的孵化器或使用中的更新

现在人们倾向于使用

(update-in my-map [:key1 :key2] dissoc :key-to-remove) 
例如:

user> (update-in {:a {:b {:c 1 :d 2}}} [:a :b] dissoc :c) 
{:a {:b {:d 2}}}

如果您希望看到添加此功能,请投票支持有意义的

,并感谢您提供了清晰的示例。我想当我认为这是一个受支持的语言特性时,我误解了文档。