我知道我可以花时间来评估一个函数可以使用时间函数/macros在屏幕上/标准输出打印出来。 时间macros返回评估函数的值,这使得它内联使用它很好。 不过,我想在特定情况下自动测量运行时间。 有没有一个函数返回一些库中的时间来帮助这个基准testing?
当我使用lein启动Clojure时,如何设置像-server这样的选项?
我无法在http://clojure.org/libraries中find处理时间和date的图书馆。 有没有,或者这是我必须弄清楚如何直接使用Java呢?
我正在寻找轻量级的东西,至less应该支持以下function: 支持通过元数据轻松定义操作 从请求提取参数到clojure映射的包装器,或作为函数参数 支持多种forms的authentication(基本,表单,cookie) 基于api方法元数据的基本授权 包裹在clojure地图中的会话对象 REPL实时编码(无需重启服务器) 将返回值自动序列化为json和xml 有好的(可插入的)url参数处理(例如/ action / par1 / par2而不是/ action?par1 = val1&par2 = val2) 我知道为这些选项中的每一个select一个自己的微观框架是相对容易的,但是为什么要重新发明轮子? 特别是如果它是: 活跃的项目,贡献者/用户数量不断增加 至less有基本的文档和教程在线。
我一直试图在Clojure中创build一个用户定义的exception,并且遇到各种各样的问题。 我尝试了这里概述的方法: http://en.wikibooks.org/wiki/Clojure_Programming/Concepts#User-Defined_Exceptions (gen-and-load-class 'user.MyException :extends Exception) 但是,这似乎并没有在Clojure 1.2(或我做错了什么…)。 我的环境是Clojure 1.2,Emacs和lein swank。 谢谢你的帮助!
我最近看到一些Clojure或Scala(对不起,我不熟悉它们),他们做了一个列表或类似的东西。 什么是拉链,它是从哪里来的?
这就是Rich Hickey在其中一篇博文中所说的,但我不明白使用apply的动机。 请帮忙。 Clojure和CL最大的区别在于Clojure是一个Lisp-1,所以funcall是不需要的,apply只用于将一个函数应用到运行时定义的参数集合中。 所以,(应用f [i])可以写成(fi)。 另外,他的意思是“Clojure是Lisp-1”,funcall是不需要的? 我从来没有编程在CL。 谢谢
我已经用clojure编写了一个程序,但是其中一些函数没有参数。 编写诸如“def”而不是“defn”而没有参数的函数的优点是什么?
为了理解一些Clojure的macros,我拼命地靠在墙上试图理解一些使用unquote-splice的Clojuremacros,我似乎无法find需要的任何明确的扩展。 任何人都可以用虚拟的术语向我解释吗?
我很难理解如何在Clojure中创build一个惰性序列。 macros的文档并不完全清楚: 用法:(lazy-seq&body)获取返回ISeq或nil的expression式体,并产生一个Seqable对象,只有在第一次调用seq时才会调用主体,并caching结果并将其返回到所有后续seq电话。 我见过的所有例子似乎都是这样的: ; return everything in the sequence starting at idx n (defn myseq-after-n [n] (…) ) (def my-lazy-seq (lazy-seq (conj [init-value] (myseq-after-n 2))) ) 所以,我没有得到的第一件事是,因为lazy-seq在conj的调用之外,它如何防止conj在评估中产生一个无限序列? 我的第二个问题是,懒惰的序列定义总是采取这种一般forms?