clojure相关内容

是否可以在 ClojureScript :require 中使用 :refer :all ?

我只是在尝试 ClojureScript,首先将我在 Clojure 中编写的内容转换为 cljx. 当我尝试编译它时,我得到: clojure.lang.ExceptionInfo::refer 后面必须跟 :require 中的一系列符号 我在网上找到了一些间接引用,但没有任何地方说明我是否应该能够在 ClojureScript 程序中使用 :refer :all. 如果我做不 ..
发布时间:2022-01-02 23:08:22 其他开发

Clojure For Comprehension 示例

我正在使用 docjure并且它的 select-columns 函数需要一个列映射.我想获取所有列而无需手动指定.如何将以下内容生成为惰性无限向量序列 [:A :B :C :D :E ... :AA :AB :AC .... :ZZ ... :XFD]? 解决方案 您的问题归结为:“如何将数字转换为带有字母 AZ 的 base-26 字符串?". 这是一种方法 - 可能不是最简洁的 ..
发布时间:2022-01-02 23:08:15 其他开发

在 Clojure 中翻转哈希映射

我对 Clojure 非常陌生,有一个有趣的问题要请教各位 Clojure 大师.我正在阅读“编程集体智能"这本书,并尝试在 Clojure 中编写示例(这本书中的所有示例都使用 Python).在第一章中,我们有一个电影评论家的哈希图设置以及他们对不同电影的排名.它看起来像这样: {"Lisa Rose" {"水中女士" 2.5, "飞机上的蛇" 3.5 },“基因西摩"{“水中女士"3.0, ..
发布时间:2022-01-02 23:07:53 其他开发

如何将 Clojure REPL 的内容转储到文件中?

所以我一直在编写 Clojure 教程,到目前为止它非常有趣.不幸的是,每次我关闭 REPL 时,我都会丢失我在上一个会话中创建的所有 defn 和 def. 那么,为了将来节省时间,是否可以让 Clojure REPL 将我输入的所有内容保存到文件中,以便我可以挖掘出我需要的内容以备将来使用? 解决方案 我认为大多数人的工作方式是使用他们的 IDE 将代码片段发送到 REPL,而不 ..
发布时间:2022-01-02 23:07:42 其他开发

Clojure 按值获取映射键

我是一名新的 clojure 程序员. 鉴于... {:foo "bar"} 有没有办法检索值为“bar"的键名? 我浏览了地图文档,可以看到一种检索键和值或仅检索值而不只是检索键的方法.感谢帮助! 解决方案 可以有多个值为“bar"的键/值对.与它们的键相反,这些值不会被散列用于查找.根据您想要实现的目标,您可以使用如下线性算法查找密钥: (def hm {:foo " ..
发布时间:2022-01-02 23:07:32 其他开发

为什么 Clojure 的 `let` 和 `for` 都是 monad?

在本次讨论中 Brian Marick 指出 let 和 for 是 Clojure 中的 monad: 也就是说,真正通用的 monad 倾向于以特殊形式写入语言.Clojure 的 let 和 for 都是 monad,但你不需要知道它们就可以使用它们. 这是let user=>(让 [c (+ 1 2)[d e] [5 6]](-> (+ d e) (- c)))8 这是fo ..
发布时间:2022-01-02 23:07:26 其他开发

是否可以对 Lisp 家族语言实现自动柯里化?

也就是说,当您仅使用一个参数调用具有 >1 元数的函数时,它应该不显示错误,而是将该参数柯里化并返回具有减少的元数的结果函数.使用 Lisp 的宏可以做到这一点吗? 解决方案 在 Scheme 中,可以使用 curry 过程对函数进行柯里化: (定义(添加 x y)(+ x y))(加1 2);非柯里化过程调用(咖喱加);柯里化过程,需要两个参数((咖喱加) 1) ;咖喱过程,需要一个参 ..
发布时间:2022-01-02 23:07:17 其他开发

使用 Ring 和 Compojure 为不同的中间件提供应用程序和 API 路由

我有一个 ring+compojure 应用程序,我想根据路由是 Web 应用程序的一部分还是 api(基于 json)的一部分来应用不同的中间件. 我在堆栈溢出和其他论坛上找到了这个问题的一些答案,但这些答案似乎比我一直使用的解决方案更复杂.我想知道我的做法是否有缺点,以及我的解决方案中可能缺少什么.我正在做的一个非常简化的版本是 (defroutes app-routes(GET " ..
发布时间:2022-01-02 23:07:08 其他开发

为什么 clojurescript 宏不能用 clojurescript 编写?

虽然 clojure 和 clojurescript 的功能基本相同(除了明显的差异),但宏不是.当我想要 clojurescript 中的宏时,我必须在 clojure 中编写它并使用 require-macros 来要求它.这是javascript的技术限制还是设计决定?为什么两者不能相同? 解决方案 来自 ClojureScript: Up and Running 作者Stuart ..
发布时间:2022-01-02 23:06:58 其他开发

Clojure 嵌套映射 - 更改值

不得不说我大约两周前开始学习 Clojure,现在我从整整三天都被困在一个问题上. 我有一张这样的地图: {:agent1 {:name "Doe" :firstname "John" :state "a" :time "VZ" :team "X"}:agent2 {:name "Don" :firstname "Silver" :state "a" :time "VZ" :team "X ..
发布时间:2022-01-02 23:06:48 其他开发

交换向量中两个元素的惯用方法是什么

是否有更好或更简洁的方法来执行以下操作? (defn 交换 [v i1 i2]“交换向量中的两个位置"(让 [e1 (v i1)e2 (v i2)](-> (assoc v i1 e2)(assoc i2 e1)))) 解决方案 我也想不出特别优雅的解决方案.不过我是这样写的: (defn 交换 [v i1 i2](assoc v i2 (v i1) i1 (v i2))) ..
发布时间:2022-01-02 23:06:20 其他开发

Clojure REPL readline 之类的支持

几个 REPL(如 ruby​​ 的 irb)有一些非常有用的功能,例如使用箭头键“倒带"和“前进"命令历史;但是当我尝试用 Clojure 做同样的事情时,它只打印垃圾(我怀疑它打印了键码).如何在 Clojure REPL 中获得此功能? 解决方案 您需要使用 JLine 或 rlwrap.请参阅 http://en.wikibooks.org/wiki/Clojure_Program ..
发布时间:2022-01-02 23:06:12 其他开发

ClassCastException java.lang.Long 不能转换为 clojure.lang.IFn

我有一个函数,它接受年数和薪水,然后递归地将薪水加倍,直到年数用完.但是,我不断收到此错误: ClassCastException java.lang.Long 不能转换为 clojure.lang.IFn 代码 (defn计算工资【年薪】(如果(= 0 年)(薪水)(计算-薪水 (- 年 1) (* 薪水 2)))) 我对 Clojure 非常陌生,所以我确信它很简单,但我似乎无 ..
发布时间:2022-01-02 23:06:06 其他开发

在if-else中执行多个语句而没有空指针异常

我正在尝试更深入地研究 clojure 和函数式编程. 在我的代码的某个时刻,我有一个 (def server (spawn-server)).现在我想要一个简短的 REPL 函数来检查这个套接字的状态. 这是我目前所拥有的: (定义状态[](如果服务器((println "服务器已启动并正在运行")(println "connections:" (connection-count ..
发布时间:2022-01-02 23:05:56 其他开发

如何在没有 clojure.jar 的情况下从 Github 存储库在 Ubuntu 10.04 上安装 Clojure

我一直在尝试在我的电脑上安装 Clojure 来学习和使用.我正在运行 Ubuntu 10.04,并安装了来自 Synaptic 的最新 Sun Java SDK 和环境. 通过 Google 搜索,我找到了多个指南,它们提供了非常清晰的指南,说明如何使用 SLIME 安装所有依赖项和有用的工具和构建器,例如 ant、maven、leiningen 和 emacs. 有些指南有点过时, ..
发布时间:2022-01-02 23:05:50 其他开发

来自 clojure 时,clojurescript 的命名空间问题是什么?

我正在尝试理解 clojurescript 中的命名空间模型.我知道 javascript 没有内置命名空间支持,因此它是通过 google 关闭库添加的.但是,我不明白 clojurescript 如何处理这些差异.有人可以解释一下吗? 例如,我想使用谷歌图表 api,并且在可能的情况下想使用高级编译.我在 closure/build 调用中使用什么,ns 形式是什么样的,从代码中引用 a ..
发布时间:2022-01-02 23:05:24 其他开发

如何在另一个文件中使用我项目中的一个文件?

简单的问题.我是 Clojure 的新手. 如何在另一个文件中使用我项目中的一个文件?基本上我如何包含、导入或需要另一个文件?不是来自图书馆,而是来自我自己的代码. 谢谢,亚历克斯 解决方案 通常你会希望使用与库代码相同的方法,即use/require 您的命名空间(通过文件顶部的 ns 表单,有时通过 REPL 中的 use/require 函数).为此,您必须确保它们在类路 ..
发布时间:2022-01-02 23:05:17 其他开发