Questions tagged «clojure»

Clojure是Java虚拟机(带有CLR和JavaScript版本)的现代Lisp方言。Clojure不仅仅是Java中Lisp的实现,还提供了对Java类和生态系统的访问。


3
如何看懂Lisp / Clojure代码
非常感谢所有美丽的答案!无法仅将其中一个标记为正确 注意:已经是Wiki 我是函数编程的新手,虽然我可以阅读函数式编程中的简单函数,例如,计算数字的阶乘,但我发现很难阅读大函数。部分原因是因为我无法找出函数定义中较小的代码块,部分原因是因为我很难( )在代码中进行匹配。 如果有人可以引导我阅读一些代码并提供一些有关如何快速解密某些代码的提示,那将是很好的。 注意:如果我盯着它看10分钟,我就能理解该代码,但是我怀疑如果用Java编写相同的代码,那将花费我10分钟。因此,我认为要熟悉Lisp风格的代码,我必须更快地做到这一点 注意:我知道这是一个主观问题。我在这里没有寻求任何可证明的正确答案。只是关于您如何阅读此代码的注释,将受到欢迎并且非常有帮助 (defn concat ([] (lazy-seq nil)) ([x] (lazy-seq x)) ([x y] (lazy-seq (let [s (seq x)] (if s (if (chunked-seq? s) (chunk-cons (chunk-first s) (concat (chunk-rest s) y)) (cons (first s) (concat (rest s) y))) y)))) ([x y & zs] (let [cat (fn cat …
76 clojure  lisp 


4
如何列出名称空间的功能?
我想知道如何列出Clojure名称空间的所有功能。我已经做过一些研究,但还没有。我已经发现了如何使用show方法列出Java类的方法: (show java.awt.Graphics) 为了列出Clojure命名空间的功能,我尝试了如下show方法: (show 'clojure.contrib.repl-utils) 这显示了一些Java类方法,但没有显示我喜欢的docand和show。我怎么能得到那些?
74 clojure 



7
之间有什么区别?和;; 在Clojure代码注释中?
在Clojure中发表评论;和之间有什么区别;;?我看到我的文本编辑器为它们涂上了不同的颜色,所以我假设在概念上存在一些差异。 我也看到Marginalia对待他们的方式有所不同: ; Stripped entirely ;; Appears in text section of marginalia (defn foobar [] ; Appears in code section of marginalia output ;; Again, appears in code section of marginalia output 6)

17
我应该学习哪个Lisp?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我应该学习哪个Lisp(方言),为什么? CL和Scheme之间的碎片化减慢了吸收速度(至少对我而言!)。 因此,请给我“真实答案”! 我已经尝试阅读功能比较,它们似乎陷入了esoterica(我不完全了解)的困境,例如方言是否完全尾部递归等。我希望大家(共同)可以使不透明的差异变得清晰。 我喜欢的东西 良好的库支持,良好的环境和Unicode支持。 我不喜欢的事 火焰战。一开始有用的功能,但会干扰长期学习。 更新 我一直在使用MzScheme,一旦获得了readline支持,我会感觉很好。我没有在Unix上运行GUI,因此对我来说这似乎是一个不错的环境选择。 我也很高兴Clojure在debian上易于安装.deb软件包,因此更容易使用。这是一个巨大的胜利。尽管下面有些人很容易发火,但进入门槛低仍然是一个胜利。我喜欢被人喂。 在阅读了很多SICP之后,我确实更好地了解了尾递归的问题。
71 lisp  clojure  scheme 

5
Clojure:休息与下一个
我很难理解Clojurerest和之间的区别next。官方网站上关于懒惰的页面表明,偏好可能应该是使用rest,但是并不能真正清楚地解释两者之间的区别。谁能提供一些见识?

8
如何运行我创建的.clj Clojure文件?
我已经在Linux Mint机器上安装了Geany,并编写了一些简单的代码。只是一个很小的世界,即可开始使用该语言。 现在,我想运行它并查看其输出。 如何运行此代码?我没有使用IDE或预先打包的东西,而只是使用简单的文本编辑器Geany。 我应该运行什么命令?

3
Clojure中的Let vs. Binding
我知道它们是不同的,因为一种适用于设置,*compile-path*而另一种不适用。但是,我需要帮助他们为什么与众不同。 let使用给定的绑定创建一个新的作用域,但是binding...?
69 binding  clojure  let 



1
Clojure“重复”使“未来”按顺序运行
虽然这个片段 (dorun (map deref (map #(future (println % (Thread/currentThread))) (range 10)))) 打印显示不同线程的10条混合线: 0 #object[java.lang.Thread 0x5f1b4a83 Thread[clojure-agent-send-off-pool-26,5,main]] 2 #object[java.lang.Thread 1 0x79dfba1f #object[Thread[clojure-agent-send-off-pool-28,5,main]java.lang.Thread] 3 4 #object[java.lang.Thread #object[java.lang.Thread 0x7ef7224f Thread[clojure-agent-send-off-pool-27,5,main]0x5f1b4a83 ]Thread[clojure-agent-send-off-pool-26,5,main]] 5 67 #object[java.lang.Thread #object[0x79dfba1f java.lang.Thread Thread[clojure-agent-send-off-pool-28,5,main]]0x77526645 8 #object[java.lang.Thread #object[java.lang.ThreadThread[clojure-agent-send-off-pool-29,5,main] ]9 #object[java.lang.Thread 0xc143aa5 0x7ef7224f Thread[clojure-agent-send-off-pool-31,5,main]]Thread[clojure-agent-send-off-pool-27,5,main]] 0x1ce8675f 0x379ae862 Thread[clojure-agent-send-off-pool-30,5,main]Thread[clojure-agent-send-off-pool-32,5,main]]] 如我所料,以下代码段: (dorun (map deref (map …
12 clojure 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.