首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassNotFoundException: clojure.algo.monads

ClassNotFoundException: clojure.algo.monads
EN

Stack Overflow用户
提问于 2015-05-09 03:37:58
回答 1查看 243关注 0票数 1

我正在尝试require clojure.algo.monads,我有点搞不懂clojure导入/要求/使用

代码语言:javascript
复制
; at lein...
:main monads.core/-main
:dependencies [[org.clojure/clojure "1.6.0"]
                 [org.clojure/algo.monads "0.1.5"]])

安装deps: lein deps

和这个简单的代码来测试

代码语言:javascript
复制
(ns monads.core
  (require clojure.algo.monads))


(defn -main [& args]
  (clojure.algo.monads)
  (println "Hello, World!"))

莱茵跑

代码语言:javascript
复制
Exception in thread "main" java.lang.ClassNotFoundException: clojure.algo.monads, compiling:(monads/core.clj:6:3)
at clojure.lang.Compiler.analyze(Compiler.java:6464)
at clojure.lang.Compiler.analyze(Compiler.java:6406)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3665)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6646)
...

我做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-09 07:12:41

您的(clojure.algo.monads)函数中的表达式-main被认为是对clojure.algo.monads的调用,它应该是一个特殊的形式、一个宏或一个函数。但是,clojure.algo.monads是一个命名空间。没有对应于它的Java类文件。这导致了ClassNotFoundException

我建议您需要clojure.algo.monads命名空间,并且只引用您想要使用的有限的函数或宏。下面是一个例子。

代码语言:javascript
复制
user> (require '[clojure.algo.monads :refer [domonad maybe-m]])
nil

user> (defn f
        [x]
        (domonad maybe-m
                 [a x
                  b (inc x)]
                 (* a b)))
#'user/f

user> (f 3)
12

user> (f nil)
nil
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30135692

复制
相关文章

相似问题

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