问题标签 [clojure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10999 浏览

binding - Clojure 关键字参数

在 Common Lisp 中,您可以这样做:

Clojure 没有关键字参数。一种替代方法是:

嵌套的括号太多,不得不一直打字和阅读。它还需要一个显式的哈希映射作为参数而不是平面列表传入。

什么是最惯用的 Clojure 等效关键字参数,看起来不像有人引爆了标点符号?

0 投票
2 回答
5323 浏览

clojure - 如何在 Clojure 中解析二进制文件

在 clojure 中解析二进制数据的最简洁方法是什么?我需要能够同样干净地读取/写入文件或套接字。

就像是:

和相反的数据放回。以某种方式定义一次结构并让读写函数使用相同的定义真的很棒。

0 投票
4 回答
2213 浏览

memory-leaks - 如何在 Clojure 中泄漏内存?

对于周四在湾区 Clojure 聚会上的演讲,我正在编制一份在 Clojure 中泄漏内存的方法列表。

到目前为止,我有:

  • 抓住无限序列的头部
  • 通过在循环中调用 lambda 创建许多泛型类(这仍然是一个问题)
  • 持有对未使用数据的引用
  • ...

还有什么?

0 投票
3 回答
2190 浏览

windows - 在 Emacs + Slime + Clojure + Windows 设置中,无法加载 clojure-auto

我按照这个非常有用的指南来设置这个开发环境。运行emacs.bat时,我在 Emacs 中收到以下错误:

文件错误:无法打开加载文件,clojure-auto

不幸的是,我对 Clojure 和 Emacs 都是全新的,所以任何帮助甚至弄清楚从哪里开始寻找都会有所帮助。

此外,作为旁注,指南中的最后一步是:

使用 emacs.bat 文件启动 Emacs。然后,只需输入“Mx slime”,REPL 就会出现,你就可以开始了。

根据 Emacs 文档,Mx 将是 Meta key + x。但是,Windows 中的 Meta 键尚不清楚。它谈到了控制,但那将是 C+x,所以我假设它是 Shift。我也试过M+!认为这是一个shell命令,但没有运气。也许有人可以在评论中确认。

更新:来自评论中的dfa:“meta is Alt”有效。谢谢你。

更新:来自 Rayne 的非常有用的信息:

如果您的 emacs 经验继续走错路,请不要放弃 Clojure。总是有 La Clojure for IDEA Clojure-dev for Eclipse 和我个人最喜欢的 Enclojure for NetBeans。

0 投票
4 回答
408 浏览

java - 如何从 C 进程中启动 Java?

我想将一些基于 Java(实际上是Clojure)的事件处理程序添加到一个巨大的遗留 C 应用程序中。执行此操作的最直接且易于维护的方法是什么?我希望 Java 类与 C 代码在同一进程中运行。这甚至可能吗?

0 投票
4 回答
1250 浏览

clojure - Clojure 编程在 Kindle 上的表现如何?

编程 Clojure目前仅以电子形式提供。我看到它在 Kindle 上以 .mobi 格式提供。我的问题是,这效果如何?我知道一些编程书籍可能会丢失 Kindle 上代码的格式。有没有人试过这个?这个版本好用吗?

0 投票
4 回答
35643 浏览

clojure - 使用和需要的区别

谁能解释 and 之间的区别userequire无论是直接使用还是作为:useand:requirens宏中使用?

0 投票
1 回答
729 浏览

java - 奇怪的 Clojure Box - 库(dll)问题

我正在尝试使用 Clojure Box 将 JACOB 库与 Clojure 一起使用。

我已将此添加到我的 .emacs 中:

C:/dev/dlls/包含jacob-1.14.3-x86.dll.

我在.clojure我的目录中添加了一个目录~/,其中包含 jacob.jar.

在 Clojure Box REPL 中,(System/getProperty "java.class.path")产生:

(System/getProperty "java.library.path")产量:

如果我启动 Clojure Box 并发出问题(import '(com.jacob.com Dispatch ComThread)),REPL 就会挂起。

现在是奇怪的部分。如果我杀死 REPL 并执行“Alt-X slime”并对“创建一个额外的劣质 lisp?(y 或 n)”回答否并发出“(import '(com.jacob.com Dispatch ComThread))”它可以工作!更奇怪的是,如果我首先发出“(import '(com.jacob.com Dispatch ComThread))”并让REPL挂起,这只会“有效”。如果我只是启动 Clojure Box 并杀死/重新启动 REPL 而没有先发出“(import '(com.jacob.com Dispatch ComThread))”,它就会挂起。

任何帮助是极大的赞赏。

雅各布:http : //sourceforge.net/projects/jacob-project/

Clojure 盒子: http ://clojure.bighugh.com/

0 投票
7 回答
15965 浏览

clojure - F# 和 Clojure 之间的显着差异

F# 和 Clojure 之间最显着的区别是什么?

哪些构造具有 Clojure 没有的 F#,反之亦然?

F# 有宏吗?

0 投票
2 回答
1684 浏览

clojure - Clojure:从文件中读取结构失败,字符串属性包含空格

我刚刚开始使用 Clojure,我想我会尝试的第一件事是存储和检索结构列表,就像这里的 Suart Halloway 的示例一样。

如果我在属性字符串中使用没有空格的结构实例,则我的结构散列的吐出/啜饮效果很好,如下所示:

但如果我使用这个:

我收到一个错误:

根据结构中字段的数量,我也可能只是将字符串的一部分作为属性名称而不是错误。例如:循环 1

我使用这样的存储功能:

和这样的读取功能:

从 spit 的输出文件中,我可以看到 print 没有给字符串加上双引号,这似乎是 slurp 的问题。什么是正确的解决方案?

我的 Clojure 版本是 1.0,contrib 是几周前的快照。