clojure相关内容

Clojure #= 阅读器宏

我刚刚从 #= 阅读器宏-expand-before-system-macros">post 在 Stackoverflow 上它解决了一个问题.这个阅读器宏成为一个的可能性有多大语言的官方(记录)部分?如何弃用或改变了行为? #= 阅读器宏使 Lisp 阅读器对以下 s 表达式求值(在宏展开之前). 解决方案 当某些内容以 *print-dup* true 打印时,核心语言会使用它 ..
发布时间:2022-01-02 23:17:47 其他开发

Clojure 中的自定义相等不同

在 Clojure 程序中,我有一个由包含人们姓名和电子邮件的映射组成的数组. 例如 [{ :name "John" :email "john@gmail.com" }{ :name "蝙蝠侠" :email "batman@gmail.com" }{ :name "John Doe" :email "john@gmail.com" }] 我想删除重复的条目,为了比较目的,具有相同电 ..
发布时间:2022-01-02 23:17:38 其他开发

卸载/重新安装leiningen(clojure server)相关问题

正如我在这里询问并回答的那样,我发现运行 'sudo lein deps 会导致一些问题,迫使我运行 'sudo lein swank',这很烦人.而且 有人告诉我不要使用 sudo. 我使用的是 Mac OS X 10.6.4. 所以,我会尝试卸载并重新安装 leiningen. 卸载leiningen 删除 ~/.m2 目录只是卸载,是否正确? (重新)安装 leini ..
发布时间:2022-01-02 23:17:24 其他开发

Clojure 中的 Apply-recur 宏

我对 Clojure/Lisp 宏不是很熟悉.我想编写 apply-recur 宏,它与 (apply recur ...) 具有相同的含义 我想没有真正需要这样的宏,但我认为这是一个很好的练习.所以我在寻求你的解决方案. 解决方案 嗯,真的没有必要,如果只是因为 recur 不能接受可变参数(一个 recur 到函数的顶部需要一个最终的 seqable 参数,将所有参数分组并传递最后 ..
发布时间:2022-01-02 23:17:14 其他开发

通过 Clojure 中的任意函数传输数据

我知道 -> 形式可用于将一个函数结果的结果传递给另一个: (f1 (f2 (f3 x)))(-> x f3 f2 f1) ;相当于上面的行 (摘自 ociweb 上的优秀 Clojure 教程) 但是,此表单要求您知道在设计时要使用的功能.我想做同样的事情,但在运行时使用任意函数列表. 我已经编写了这个循环函数来完成它,但我觉得有更好的方法: (defn pipe [initi ..
发布时间:2022-01-02 23:17:06 其他开发

在 Clojure 中,如何从 Web 下载图像并将其保存到文件系统?

如何使用 Clojure 从 Web 下载图像并将其保存到文件系统?我知道图像 url 并且我知道我不能使用 spit 和 slurp 来做到这一点,因为它是二进制数据,而不是文本. 我想尽可能简单地做到这一点,理想情况下就像吐痰和啜饮一样.也就是说,没有很多额外的行使用缓冲区或字节数组.我想在完成后关闭流,但我不在乎它是否效率低下. 解决方案 何志同 指向我这个解决方案,最适合我的 ..
发布时间:2022-01-02 23:16:56 其他开发

Clojure 是否有相当于 Java 的 import package.*?

或者我是否必须专门枚举我导入的每个类? 我现在只是在学习 Clojure,能够在 REPL 中做这样的事情似乎很有用: (import '(java.io *)) 并不是说这是有效的语法,但是如果有一些等效的东西会很好.它会节省一些打字的时间,尤其是在修补时.在实际的生产代码中,我总是枚举我正在导入的每个类,而不管语言如何,但不必这样做非常方便. 解决方案 Rich Hickey ..
发布时间:2022-01-02 23:16:40 其他开发

如何在 Clojure 中取消定义函数?

我经常需要在 clojure 中取消定义一个函数.如果我用 defn 定义了一些东西,我怎么能取消它呢? 解决方案 如果你有: (def x 42) 解绑 var 可能很有用: (.unbindRoot #'x) 现在,如果你试试这个 x 你得到: # ..
发布时间:2022-01-02 23:16:22 其他开发

以 Newick 格式懒惰地打印一棵树

我希望以 Newick 格式 打印二叉树,显示每个节点与其父节点的距离.目前我没有遇到以下代码的问题,它使用常规递归,但树太深可能会产生堆栈溢出. (定义树->newick[树](让 [{:keys [id children to-parent]} 树dist (双到父)] ;to-parent 可能是一个理性的(如果孩子(str "(" (tree->newick (first childre ..
发布时间:2022-01-02 23:16:09 其他开发

如何直接从 Java 调用 Clojure 函数

我有 Clojure 函数 generate-id. 源代码: (ns url62.core)...(defn 生成 ID [](int-to-base62 (java.math.BigInteger. (clojure.string/replace (str (java.util.UUID/randomUUID)) "-" "") 16))) https://github.com/8p ..
发布时间:2022-01-02 23:16:01 Java开发

使用 leiningen 时出现 ExceptionInInitializerError

我是使用 Clojure 和 Leiningen 的初学者,在尝试使用各种 lein 命令时遇到了问题.尽管 $ lein deps 工作正常,但当我尝试使用 $ lein plugin install ,甚至 $lein help 时,我得到下面粘贴的堆栈跟踪.我猜这是一个设置问题,但我无法在线查找信息或找到合适的位置开始查找.安装 lein 时,我按照 Leiningen Gi ..
发布时间:2022-01-02 23:15:49 其他开发

将 lein 项目与/lib 一起使用不起作用

使用 lein 2.2 时,尝试将 jar 文件放在/lib 中不起作用. 我试过了,它似乎不起作用,但有很多文档说这种方式仍然有效. 解决方案 在 Leiningen v2.0 中删除了 lib 目录功能,以支持存储库 (可重复性). 要将自由浮动罐添加到项目中,您需要将您的依赖项部署到 Clojars 或 Maven 存储库.Maven 存储库可以像项目文件夹中的目录一样简 ..
发布时间:2022-01-02 23:15:40 其他开发

在 Slime 中加载新的依赖项?

我正在使用 emacs 和 swank-clojure.我如何解决以下情况 - 我向 project.clj 添加了一个新的依赖项. 我在 shell 中运行 lein deps 以获取新的 dep. 我有一个已打开的现有 Slime 会话,我想使用新部门的功能. 如何让现有的 slime 会话加载新的依赖项? 谢谢,穆尔塔扎 解决方案 你应该看看 pomegrana ..
发布时间:2022-01-02 23:15:30 其他开发

我可以从 C++ 调用 clojure 代码吗?

我正在为用 C++ 编写的程序编写插件. 插件被放置在一个特定的目录中并被主应用程序调用.我想用 Clojure 编写大部分插件(gui、计算等),但是实际的“插件"需要用 C++ 编写.各种数据需要从C++传递到Clojure. 我该怎么做? JNI/JNA、套接字、系统调用?(我知道的不多) 解决方案 我知道这个问题很老,但也许有人觉得这很有用. #include ..
发布时间:2022-01-02 23:15:19 C/C++开发

结合 Clojure defprotocol 和 defrecord

据我所知,如果我想定义一个只能由一个defrecord实现的协议(defprotocol),我仍然需要定义协议首先,然后定义实现它的defrecord: (defprotocol AProtocol(a-方法[这个])(b-方法[这个那个]))(defrecord ARecord [a-field b-field]协议(a-method [this] ...)(b-method [this th ..
发布时间:2022-01-02 23:15:06 其他开发

为什么在使用 lein run 按下 ENTER(似乎挂起)后 read-line 没有返回,但可以与 lein repl 一起使用?

手头的问题是,当我用 lein run 运行我的程序时,它进入了 (read-line) 部分,我无法摆脱它,意思是:读行永远不会返回. 相关代码如下: (def 命令(原子""))(defn 打印提示 [](打印“提示>")(冲洗))(defn 请求输入 [](打印提示)(让 [x (str (read-line))](println (str "用户输入:" x))(重置!命令 x)) ..
发布时间:2022-01-02 23:14:56 其他开发