Questions tagged «clojure»

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

6
Scala vs. Groovy vs. Clojure [关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 有人可以解释一下Scala,Groovy和Clojure之间的主要区别。我知道这些编译器都可以在JVM上运行,但是我想对它们进行简单的比较。

1
如何通过TRAMP / Emacs远程使nrepl-ritz-jack-in工作
我想要的是: 我在远程站点上有一个Clojure程序,我们称它为mccarthy。我想做的是nrepl-ritz从笔记本电脑连接到,最好使用nrepl-ritz-jack-in。插孔可用于本地程序,但似乎无法连接到远程程序。 尝试1 C-x C-f 上 /mccarthy:code/program/project.clj (require 'nrepl-ritz) M-x nrepl-ritz-jack-in 结果 Emacs似乎挂起。如果我进入*nrepl-server*缓冲区,则会看到以下内容: Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.flatland.drip.Main.invoke(Main.java:117) at org.flatland.drip.Main.start(Main.java:88) at org.flatland.drip.Main.main(Main.java:64) Caused by: java.lang.AssertionError: Assert failed: project at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23) at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95) (以及大量其他线路...) 我drip在笔记本电脑上使用,但不在上使用mccarthy,因此很明显nrepl-ritz-jack-in没有检测到它是远程文件。nrepl-jack-in但是,在这种情况下,常规的old 将可以正常工作。 尝试2 我也尝试在上开始nrepl-ritz使用:leinmccarthy mattox@mccarthy$ lein …
299 emacs  clojure  nrepl 

14
在Clojure中进行调试?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 改善这个问题 使用repl时,调试Clojure代码的最佳方法是什么?
227 debugging  clojure 

16
您如何在Clojure中制作Web应用程序?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我想这对于每天使用Java的绝大多数程序员来说是一个奇怪的问题。我不。我知道Java语言,因为我从事过Java项目,但不从事Java世界。我从未使用Java从头开始制作Web应用程序。如果我必须使用Python,Ruby来做,那么我知道要去哪里(Django或Rails),但是如果我想在Clojure中创建Web应用程序,不是因为我被迫生活在Java世界中,而是因为我喜欢这种语言,我想尝试一下,我应该使用哪些库和框架?
216 clojure 

13
是否有用于功能编程的软件工程方法?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 改善这个问题 今天所讲授的软件工程完全专注于面向对象的编程和“自然”的面向对象的世界观。有一种详细的方法学描述了如何将域模型转换为具有几个步骤和许多(UML)工件(如用例图或类图)的类模型。许多程序员已经内化了这种方法,并且对如何从头开始设计面向对象的应用程序有一个很好的主意。 新的炒作是函数式编程,许多书籍和教程都对此进行了讲授。但是功能软件工程呢?在阅读有关Lisp和Clojure的内容时,我得出了两个有趣的陈述: 功能程序通常是自下而上而不是自上而下的开发(“ On Lisp”,Paul Graham) 功能程序员使用Map,而OO程序员则使用对象/类(“ Rich Hickley的“ Java程序员的Clojure”)。 那么,对功能应用程序(即Lisp或Clojure)进行系统(基于模型?)设计的方法是什么?常见的步骤是什么,我使用什么工件,如何将它们从问题空间映射到解决方案空间?

8
如何在REPL中重新加载Clojure文件
重新加载Clojure文件中定义的功能而不必重新启动REPL的首选方法是什么。现在,为了使用更新的文件,我必须: 编辑 src/foo/bar.clj 关闭REPL 打开REPL (load-file "src/foo/bar.clj") (use 'foo.bar) 此外,(use 'foo.bar :reload-all)不会产生所需的效果,即评估函数的修改主体并返回新值,而不是表现为源未发生任何变化。 说明文件: 加载文件 用

9
从Java调用Clojure
对于“从Java调用Clojure”而言,大多数Google热门歌曲都已过时,建议您使用它clojure.lang.RT来编译源代码。假设您已经从Clojure项目构建了一个jar并将其包含在类路径中,那么您能否帮助您清楚地说明如何从Java调用Clojure?


18
测试列表是否在Clojure中包含特定值
测试列表是否在Clojure中包含给定值的最佳方法是什么? 特别是,contains?目前的行为使我感到困惑: (contains? '(100 101 102) 101) => false 很明显,我可以编写一个简单的函数来遍历列表并测试是否相等,但是一定要有一种标准的方法吗?




30
Lisp在现实世界中
我已经对Lisp(实际上是Scheme)进行了实验,发现它是一门非常美丽的语言,我有兴趣进一步学习。但是,似乎Lisp从未在严肃的项目中使用过,而且我还没有将Lisp列为任何职位发布中所需要的技能。我很高兴听到有人使用Lisp或看到它在“现实世界”中使用过,或者知道它是否被视为纯粹的学术语言。

4
请解释保罗·格雷厄姆(Paul Graham)关于Lisp的一些观点
我需要一些帮助来了解Paul Graham的《What Lisp Lisp Different》中的一些要点。 变量的新概念。在Lisp中,所有变量实际上都是指针。值是具有类型的变量,不是变量,分配或绑定变量意味着复制指针,而不是它们指向的指针。 符号类型。符号与字符串的不同之处在于,您可以通过比较指针来测试是否相等。 使用符号树的代码符号。 整个语言始终可用。读取时间,编译时间和运行时之间没有真正的区别。您可以在读取时编译或运行代码,在编译时读取或运行代码,以及在运行时读取或编译代码。 这些要点是什么意思?它们在诸如C或Java之类的语言中有何不同?除Lisp家族语言外,其他语言现在是否具有这些构造?

12
为什么到底是邪恶?
我知道Lisp和Scheme程序员通常会说eval除非绝对必要,否则应避免这样做。对于几种编程语言,我已经看到了相同的建议,但是尚未看到反对使用的明确参数列表eval。在哪里可以找到有关使用潜在问题的说明eval? 例如,我知道GOTO过程编程中的问题(使程序难以阅读且难以维护,很难找到安全性问题,等等),但是我从未见过反对的论点eval。 有趣的是,相同的论点GOTO应该对延续有效,但我看到例如Schemers不会说延续是“邪恶的”-使用它们时应该小心。与eval使用延续的代码相比,他们更不喜欢使用代码(据我所知-我可能是错的)。

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.