首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Clojure1.2中包含clj-time和clojure.contrib?

如何在Clojure1.2中包含clj-time和clojure.contrib?
EN

Stack Overflow用户
提问于 2010-09-26 23:41:38
回答 3查看 1.1K关注 0票数 1

由于1.2中引入的新协议,我尝试将一个项目从clojure 1.1迁移到1.2。但是当我尝试:use clojure-contri.duck-stream时,我得到了一个关于clojure.core中已经存在的'spit‘的警告。同样的问题也存在于clj-time.core和'extend‘,它们也存在于clojure.core中。

谁能解释一下解决这些愚蠢错误最优雅的方法是什么?

顺便说一句:从我的project.clj

代码语言:javascript
复制
 :dependencies [[org.clojure/clojure "1.2.0"]
                [org.clojure/clojure-contrib "1.2.0"]
                [clojure-csv/clojure-csv "1.1.0"]
                [org.shxiao/clojureql "1.0.0"]
                [clj-time "0.1.0-SNAPSHOT"]]
EN

回答 3

Stack Overflow用户

发布于 2010-09-26 23:53:28

您可以摆脱扩展警告(或者error?)将(:refer-clojure :exclude [extend])放入您的(ns ..)中。我提交了一个补丁来修复这个问题。我猜他们从来没有发布过新的快照。

至于duck streams位,这是因为spit曾经在duck streams中,但现在在clojure.core中。查看clojure.java.io。duck-stream的大部分功能在Clojure 1.2中达到了顶峰。如果您不想使用clojure.java.io,那么spit警告是相当无害的,但是当您使用clojure.contri.duck-streams(现在也是clojure.contrib.io )时,可以通过简单地排除它来消除它。

代码语言:javascript
复制
(ns foo (:use [clojure.contrib.duck-streams :exclude [spit]]))

这里有一些clojure.java.io的API文档:http://clojuredocs.org/Clojure%20Core/clojure.java.io。在写这篇文章的时候,http://clojure.github.com/clojure/上似乎还没有任何关于它的文档。不知道为什么。

票数 3
EN

Stack Overflow用户

发布于 2011-03-25 21:25:55

虽然这些信息中的一些是正确的,但duck streams已经从contrib中删除,并将在1.2之后不再存在。无论如何,在核心Clojure中确实没有太多您不能做的事情。

票数 1
EN

Stack Overflow用户

发布于 2010-09-26 23:57:54

导入导致碰撞的函数以外的所有内容。然后spit将引用引入到clojure.core中的版本,这可能是首选版本

代码语言:javascript
复制
(use '[clojure.contrib.duck-streams :exclude 'spit])

ns宏格式为:

代码语言:javascript
复制
(ns foo (:use [clojure.contrib.duck-streams :exclude 'spit]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3798507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档