标签: clojure-contrib

Compojure HTML格式

我是Clojure的新手,也是一个完整的HTML/Compojure处女.我正在尝试使用Compojure创建HTML的静态页面,使用类似于此的函数:

(defn fake-write-html
  [dir args]
  (let [file (str dir *file-separator* *index-file*)
        my-html (html
                  (doctype :html4)
                  [:html
                   [:head
                    [:title "Docs and Dirs:"]]
                   [:body
                    [:div
                     [:h2 "A nice title"]]
                    [:div
                     [:ul
                      [:li "One"]
                      [:li "Two"]]]]])]
    (clojure.contrib.duck-streams/spit file my-html)))
Run Code Online (Sandbox Code Playgroud)

该函数只是将HTML写入文件.(这里的args论点无关紧要.只是为了确保示例在我的程序中编译并运行.)

"Programming Clojure"表示对html函数的调用会生成格式化的HTML - 带缩进的多行.我得到的只是预期的doc类型,然后是一行中的所有HTML.HTML Tidy没有发现输出文件内容的任何问题.如果我println在REPL上它也会出现一条线.

是否需要其他东西才能获得格式化输出?

html clojure compojure clojure-contrib

5
推荐指数
2
解决办法
3039
查看次数

如何在Windows上安装clojure-contrib?

我似乎无法找到一种方法来启动包含contrib库的Clojure REPL.如果我正确理解文档,那么这个命令应该这样做:

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar:clojure
-contrib.jar clojure.main
Exception in thread "main" java.lang.NoClassDefFoundError: clojure/main
Caused by: java.lang.ClassNotFoundException: clojure.main
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: clojure.main.  Program will exit.
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的,它失败了.我确实将clojure-contrib.jar复制到了该C:\clojure-1.1.0文件夹中.

有人可以帮助我做对吗?

更新
感谢Micha?的帖子我注意到我的错误是使用冒号,我不得不使用分号.这有效:

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar;clojure-contrib.jar clojure.main
Clojure 1.1.0
user=> 
Run Code Online (Sandbox Code Playgroud)

clojure clojure-contrib

5
推荐指数
1
解决办法
1454
查看次数

defadt在哪里进入新的clojure contrib?

因此,在Clojure中试图找出如何做ADT的过程中,我遇到了旧的clojure-contrib,除了它已经被替换之外,它很好.没什么大不了的,只需查看已更换的clojure-contrib的破碎库目录,但对于我的生活,我无法找到defadt在新的clojure-contrib分解库中迁移的位置.

那么它迁移到哪里了?

我一直在寻找http://dev.clojure.org/display/doc/Clojure+Contrib+Libraries,但无法弄明白.

奖励积分,如果你能给我一个字符串,alembic.still/distill让它为我插上它.

clojure algebraic-data-types clojure-contrib

5
推荐指数
1
解决办法
922
查看次数

如何在Clojure中获得命名空间中定义的所有函数?

我想看到当前命名空间中定义的所有函数.我可以在REPL中调用一个可以回答这个问题的函数吗?

clojure clojure-contrib

4
推荐指数
1
解决办法
124
查看次数

ClojureScript编译器如何将cljs转换为Javascript

看到这是怎么回事,我有点困难.如何在不编写任何JS的情况下将其转换为JS(一切都在Clojure或CS中).

有人可以给出一个简单的例子,说明编译器如何将简单的东西转换为javascript.也许(def x"foo")或(defn [x](+ xx))?

javascript java clojure clojure-contrib clojurescript

4
推荐指数
1
解决办法
684
查看次数

你怎么能"参数化"Clojure Contrib的测试?

双方的JunitTestNG的循环遍历的输入参数集合,对他们的运行测试的机制.在Junit中,这是通过参数化注释支持的,而TestNG则使用@DataProvider.

如何使用test-is库编写数据驱动的测试?我尝试使用列表解析来遍历输入参数集合,但因为deftest是一个宏它的期待条款.

testing clojure test-is clojure-contrib

3
推荐指数
1
解决办法
551
查看次数

Clojure的整体贡献

https://github.com/clojure/clojure-contrib Clojure中的此链接要求使用Monolithic Contribclojure 1.3.从哪里可以得到罐子Monolithic Contrib或罐子是一样的clojure-contrib

clojure clojure-contrib

3
推荐指数
1
解决办法
152
查看次数

如何在命名空间的上下文中评估clojure数据结构?

我正在编写一个内部使用的clojure应用程序,我希望配置文件也在clojure中.我已经定义了一些宏来使编写配置文件更容易,但是当我尝试从配置文件中评估数据时,它无法找到我的宏.然而,这在REPL中工作正常.例如,我正在使用

(load-string "/path/to/config")
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: defcmd in this context, compiling:(null:1)
at clojure.lang.Compiler.analyze(Compiler.java:6235)
at clojure.lang.Compiler.analyze(Compiler.java:6177)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3452)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6411)
at clojure.lang.Compiler.analyze(Compiler.java:6216)
at clojure.lang.Compiler.analyze(Compiler.java:6177)
at clojure.lang.Compiler.eval(Compiler.java:6469)
at clojure.lang.Compiler.load(Compiler.java:6902)
at clojure.lang.Compiler.load(Compiler.java:6872)
at clojure.core$load_reader.invoke(core.clj:3625)
at clojure.core$load_string.invoke(core.clj:3635)
at serverStats.core$load_config.invoke(core.clj:67)
at serverStats.core$_main.doInvoke(core.clj:78)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.Var.invoke(Var.java:397)
at user$eval109.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:6465)
at clojure.lang.Compiler.eval(Compiler.java:6455)
at clojure.lang.Compiler.eval(Compiler.java:6431)
at clojure.core$eval.invoke(core.clj:2795)
at clojure.main$eval_opt.invoke(main.clj:296)
at clojure.main$initialize.invoke(main.clj:315)
at clojure.main$null_opt.invoke(main.clj:348)
at clojure.main$main.doInvoke(main.clj:426)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:405)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable …
Run Code Online (Sandbox Code Playgroud)

lisp clojure jvm-languages clojure-contrib

3
推荐指数
1
解决办法
981
查看次数

按索引组合矢量

我正在寻找一个输入两个长度为n的向量的函数,

即[:a:b:c:d:e:f] [1 2 3 4 5 6].输出一个长度为2n的向量

[:a 1:b 2:c 3:d 4:e 5:f 6].

但是,如果输入的第二个向量与n的长度不匹配,它将循环,

即[:a:b:c:d:e:f] [1 2 3]

输出:[:a 1:b 2:c 3:d 1:e 2:f 3].

 (defn Swanson [x y] (vec (flatten (interleave x (repeat (count x) y)))))
Run Code Online (Sandbox Code Playgroud)

此外,该函数也可以取[xy min max n],其中x和y是向量,min是开始交织的索引,max是结束交织的索引,n是交织的步长.

clojure clojure-contrib

3
推荐指数
1
解决办法
159
查看次数

从矢量中挑选"随机"元素

我希望从矢量中挑选出随机(即伪随机)元素.该函数将有一个输入,称之为r,它将选择要选择的元素数.此外,称为v的向量也必须是输入.这是我从未尝试过的,也不知道从哪里开始.

进入构造的假设将是r小于v中的元素数量.从v中选择的重复元素也不是问题.要明确的是,元素将是严格的数字,实际上它们将是浮点数,我希望在选择时保留该结构.

我尝试了一些类似的东西

(take 2 (iterate rand-nth [2 3 4 5 6 7]))
Run Code Online (Sandbox Code Playgroud)

但是从列表中返回向量和一个随机元素,即

([2 3 4 5 6 7] 7)
Run Code Online (Sandbox Code Playgroud)

来自java的一些类似帖子包括:如何在main中的所有声明对象中只选择一次该数组中的随机元素?

从List <E>中取n个随机元素?

clojure clojure-contrib

3
推荐指数
1
解决办法
1630
查看次数