【问题标题】:clojure require works with parenthesisclojure 需要带括号的作品
【发布时间】:2013-06-26 10:44:10
【问题描述】:

我只是在玩 Clojure(版本 1.1.0),发现这种行为很奇怪:

user=> (in-ns 'greet)
#<Namespace greet>
greet=> (clojure.core/require 'clojure.core)
nil
greet=> (clojure.core/require 'clojure.string)
java.io.FileNotFoundException: Could not locate clojure/string__init.class or clojure/string.clj on classpath:  (NO_SOURCE_FILE:0)
greet=> (clojure.core/require '(clojure.string))
nil

当我使用require 函数时,它适用于'clojure.core,但不适用于'clojure.string,适用于'(clojure.string)。为什么会这样?

【问题讨论】:

    标签: clojure namespaces require


    【解决方案1】:

    您使用的是旧版本的 clojure(AFAIK 甚至不包含 clojure.string)。您的示例代码在当前的 clojure 1.5.1 中运行良好

    【讨论】:

    • 即使clojure.string 不存在,(require '(clojure.string)) 仍然有效的原因是它被解析为前缀列表。 “在每个名称前面加上clojure.string: 无”。
    猜你喜欢
    • 2011-10-12
    • 2014-08-09
    • 2020-06-23
    • 1970-01-01
    • 2010-09-27
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多