我正在尝试修改草书,这是一个用于Clojure语言的Intellij插件。我已经通过莱茵导入了一个非常标准的新应用程序,现在我尝试使用一些core.async构造。
以下是项目定义:
(defproject app "0.1.0-SNAPSHOT"
:description "Clojure project illustrating basic core.async constructs"
:dependencies [[org.clojure/clojure "1.5.1"]
[org.clojure/core.async "0.1.346.0-17112a-alpha"]])来文提交人:
(ns app.core)
(require '[clojure.core.async :as async :refer :all])
(let [c (chan 10)]
(>!! c "hello")
(println (<!! c))
(close! c))基本Clojure构造工作,没有任何问题。但是,在Lein中添加core.async依赖项之后,每次我尝试运行一段代码时,都会出现以下警告:
WARNING: partition-by already refers to: #'clojure.core/partition-by in namespace: app.core, being replaced by: #'clojure.core.async/partition-by
WARNING: map already refers to: #'clojure.core/map in namespace: app.core, being replaced by: #'clojure.core.async/map
WARNING: into already refers to: #'clojure.core/into in namespace: app.core, being replaced by: #'clojure.core.async/into
WARNING: reduce already refers to: #'clojure.core/reduce in namespace: app.core, being replaced by: #'clojure.core.async/reduce
WARNING: partition already refers to: #'clojure.core/partition in namespace: app.core, being replaced by: #'clojure.core.async/partition
WARNING: take already refers to: #'clojure.core/take in namespace: app.core, being replaced by: #'clojure.core.async/take
WARNING: merge already refers to: #'clojure.core/merge in namespace: app.core, being replaced by: #'clojure.core.async/merge它似乎是某种名称空间冲突。
有什么简单的方法来解决这个问题吗?
发布于 2014-10-03 10:54:32
名称空间存在的原因是为名称提供上下文,以便它们可以被重用。这只是一个例子。通过使用:refer :您正在尝试引入许多与clojure.core函数冲突的函数。我通常只在ns中引入更多的core.async语法元素的子集,并为其余的元素创建一个别名:
(require '[clojure.core.async :as async :refer [>! <! >!! <!! go]])大多数重叠的名称现在实际上已被废弃,并将在未来被删除,因为它们不再需要与传感器。例如,不使用clojure.core.async.take,您将创建一个包含clojure.core.take转换器的chan,该转换器带有Clojory1.7。
发布于 2014-10-03 05:12:22
原来有一种排除元素的方法。这有点排他性,就像我想象的那样,core.async非常流行,会有一种避免基本名称冲突的默认方法。但是,遗憾的是,下面是修改后的ns/require语句,它帮助我启动并运行:
(ns app.core
(:refer-clojure :exclude [map reduce into partition partition-by take merge])
(:require [clojure.core.async :refer :all :as async]))发现这里是吉突布
https://stackoverflow.com/questions/26173582
复制相似问题