标签: clojure

为Clojure编码选择IDE /编辑器

我正在为我的Clojure编码寻找编辑器或IDE,我找到了这个帖子:
Mac OS X上的Clojure编辑器/ IDE建议

但是我有几个问题:
哪个IDE提供了最好的Clojure环境(现在):IntelliJ,Eclipse或NetBeans?
与之前的重量级IDE相比,Aquamacs(我读Rick使用它)有什么优势?

ide editor clojure

48
推荐指数
2
解决办法
4万
查看次数

Clojure中快速素数生成

我一直在努力解决Clojure中的Project Euler问题,以便变得更好,而且我已经遇到了几次素数.我的问题是它只是花了太长时间.我希望有人可以帮我找到一种以Clojure-y方式做到这一点的有效方法.

当我拳头做到这一点时,我粗暴地强迫它.这很容易做到.但是计算10001个素数在Xeon 2.33GHz上用了2分钟,对规则来说太长了,一般来说太长了.这是算法:

(defn next-prime-slow
    "Find the next prime number, checking against our already existing list"
    ([sofar guess]
        (if (not-any? #(zero? (mod guess %)) sofar)
            guess                         ; Then we have a prime
            (recur sofar (+ guess 2)))))  ; Try again                               

(defn find-primes-slow
    "Finds prime numbers, slowly"
    ([]
        (find-primes-slow 10001 [2 3]))   ; How many we need, initial prime seeds
    ([needed sofar]
        (if (<= needed (count sofar))
            sofar                         ; Found enough, we're done
            (recur needed (concat sofar [(next-prime-slow …
Run Code Online (Sandbox Code Playgroud)

lisp primes clojure

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

Clojure:如何在运行时找出函数的arity?

给定一个函数对象或名称,我该如何确定它的arity?有点像(arity func-name).

我希望有一种方法,因为arity在Clojure中非常重要

functional-programming clojure

47
推荐指数
4
解决办法
6455
查看次数

构建和部署Clojure应用程序的最佳实践:好的教程?

我是Clojure的新手,我开始尝试构建应用程序.

到目前为止,我所看到的有关编译Clojure程序的教程的所有内容都涉及交互性.例如,"加载REPL并键入(加载文件"this-or-that")以运行.这很好,但这还不够.

我已经习惯了C语言或Delphi等语言的编辑 - 编译 - 运行习惯,我本能地驱动编辑,然后点击"Mx编译".

问题是"lein uberjar",我理解相当于"make",即使对于一个你好的世界也很难执行.因此,我将不得不弄清楚这种"交互式开发"的东西是如何工作的,停止使用像它快速制作的超级发布,并且只在一天结束时保存它.

我在构建时注意到的另一件事(使用lein uberjar)是我正在处理的小GUI应用程序在编译过程中弹出帧,就像它们在编译时执行一样.这对我来说似乎有点违反直觉; 它并不像我想象的那样类似于"制造".

我知道Lisp的开发方式是在REPL中交互式工作,我并不想改变它:我想适应这种生活方式.不幸的是,我没有看到关于如何这样做的文档形式.例如,如何重置机器的当前状态.只是继续编译各个片段而不能进行某种重置似乎有点麻烦.

我在Clojure(和Lisp)上看到的大多数教程似乎都专注于在REPL中进行黑客攻击.应用程序部署的最佳实践对我来说仍然是一个谜.我的用户只是用户; 他们不会成为将文件加载到REPL的开发人员.

所以这是我的问题:任何有关构建Clojure应用程序的整个过程(包括部署)的良好信息或教程的资源?

(注意:我已经安装并运行了所有先决条件(例如Emacs,Slime,Leiningen等),所以这不是一个问题).

lisp deployment clojure leiningen

47
推荐指数
2
解决办法
7656
查看次数

如何在emacs中获得"彩虹括号"?

我想在Emacs中编辑Clojure的彩虹parens,因为VI这样做我认为在Emacs中它应该像Mx butterfly之类的东西:)

emacs syntax-highlighting clojure

47
推荐指数
2
解决办法
1万
查看次数

为什么clojure中有这么多的地图构造函数?

新手问题,但我真的不明白为什么有很多操作来构建clojure中的地图.

你有conj,assoc和merge,但他们似乎或多或少做同样的事情?

(assoc {:a 1 :b 2} :c 3)
(conj {:a 1 :b 2} {:c 3})
(merge {:a 1 :b 2} {:c 3})
Run Code Online (Sandbox Code Playgroud)

真正的区别是什么,为什么所有这些方法在做或多或少相同的事情时都需要?

clojure

47
推荐指数
3
解决办法
5723
查看次数

我可以清理repl吗?

我在repl控制台中玩了很多代码,我该如何清除它?我想要一个新的,而不重新启动它.可以这样做吗?

clojure read-eval-print-loop

47
推荐指数
4
解决办法
2万
查看次数

Clojure中的自定义异常?

我一直在尝试在Clojure中创建一个用户定义的异常,并且遇到了各种各样的问题.我尝试了这里概述的方法:

http://en.wikibooks.org/wiki/Clojure_Programming/Concepts#User-Defined_Exceptions

(gen-and-load-class 'user.MyException :extends Exception)
Run Code Online (Sandbox Code Playgroud)

但这似乎不适用于Clojure 1.2(或者我做错了......).我的环境是Clojure 1.2,Emacs和lein swank.

谢谢你的帮助!

exception-handling clojure

47
推荐指数
3
解决办法
9862
查看次数

对于没有参数的函数,Clojure def vs defn

我在clojure中编写了一个程序,但是有些函数没有参数.将这样的函数编码为"def"而不是没有参数的"defn"会有什么好处?

clojure

47
推荐指数
4
解决办法
2万
查看次数

使用Leiningen的JVM选项

当我使用lein启动Clojure时,如何设置-server等选项?

clojure

46
推荐指数
1
解决办法
2万
查看次数