clojure相关内容

在 Clojure 中编写累加器函数

我想知道如何编写书呆子的复仇文章中包含的累加器示例.很容易理解它的工作原理,但是我没有在 Clojure 中重新创建它 - 它不会累积,而只是返回 i 和 n 的初始给定值的总和. 键位于 incf(在 Common Lisp 版本中)或 +=(在 JavaScript 中). 换句话说:如何改变引用函数的状态?我看过一些关于变异变量的例子,但它们看起来并不非常漂亮,是吗? 解决 ..
发布时间:2022-01-02 23:20:41 其他开发

将函数序列应用于值序列

我想成对地将函数列表应用于值列表. 这里有一个例子来说明. user=>(定义一个 [f x] (f x))#'用户/一个用户=>(映射 [inc dec] '(98 8))(99 7) 注意我必须定义一个函数 a ,它接受一个函数并将其应用于一个值.基本上是抽象函数应用. 有没有更自然的方法来做到这一点?我真的很想使用 map 来定义一个辅助函数. 解决方案 你总是可以匿 ..
发布时间:2022-01-02 23:20:32 其他开发

Clojure 1.9 windows 安装

过去我使用 clojure.org 提供的 windows 安装程序在我的各种 Windows 机器上安装 clojure.Clojure 1.9 已经发布了几个星期,但据我所知,仍然没有 Windows 安装程序或基于 Java 的通用安装程序的迹象. 我尝试从 clojure.org 下载 jars 并运行 java -jar clojure.1.9.0.jar 但这只是转储堆栈: ..
发布时间:2022-01-02 23:20:13 其他开发

如何在assoc之后获取clojure数组映射以保持插入顺序?

我有一个 array-map,我正在将一些值assoc放入其中.达到一定大小后,返回值是PersistentHashMap 而不是原始的PersistentArrayMap.我在一些网站上读到过这种行为.有没有办法在 assoc 之后强制插入顺序? 我确实有一个单独的函数,它将接受一个 ash-map 和一个键向量,并按照这个顺序返回一个带有键的“新鲜"array-map,但这意味着对于每个 ..
发布时间:2022-01-02 23:20:07 其他开发

Clojure - 沿着路径行走

我正在寻找类似于 clojure.walk 中的那些具有 inner 函数作为参数: 不是键和值,就像 clojure.walk/walk 函数一样 但是访问顶级数据结构中的值所需的键向量. 递归遍历所有数据 示例: ;;不好,因为它接受 `[k v]` 作为参数而不是 `[path v]`,并且不是递归的.用户=>(clojure.walk/walk (fn [[k v]] [ ..
发布时间:2022-01-02 23:19:58 其他开发

如何配置 leiningen 以使用最新的 Clojure 版本进行项目外启动的 repl?

当我为特定项目启动 clojure repl 时,leiningen 足以在具体的 project.clj 文件中指定正确的 clojure 版本,如此处.但是当我在项目外启动 repl 时,旧版本就会启动.就我而言,旧版本是 1.5.1,我想升级到 1.6.0.这里已提议不有效的解决方案,但在下面的评论中说在lieingen 版本2.1 中问题已解决.我使用的是 leiningen 的 2.3. ..
发布时间:2022-01-02 23:19:52 其他开发

摇摆初学者

我想创建一个简单的 Swing 应用程序.但是,我对 Swing 的经验非常非常少.我想创建一个单窗口应用程序,每 5 分钟刷新一次我所做的屏幕抓取内容.我正在使用 Clojure 编写代码.我认为 Swing 是解决此问题的方法,但如果有其他更好的选择,我也很想了解更多相关信息. 使用 Swing 执行此操作需要什么代码?(我应该使用什么类等) 谢谢,亚历克斯 解决方案 好吧 ..
发布时间:2022-01-02 23:19:45 Java开发

如何访问向量 clojure 向量中的特定元素

如果我有一个向量定义为 (def 矩阵 [[1 2 3][4 5 6]]) 我如何在 clojure 中访问向量向量中的随机元素?我一直在网上看到人们说在列表上使用向量的好处之一是您可以获得随机访问,而不必通过列表递归,但我一直无法找到允许我这样做的函数.我习惯于在 c++ 中我可以做 matrix[1][1] 并且它会返回第二个向量的第二个元素. 我是不是必须一次循环一个元素通过我的向 ..
发布时间:2022-01-02 23:18:54 其他开发

clojure地图功能的怪异

Clojure 中 map 的第一个奇怪之处在于以下代码段: (应用地图列表'((1 a) (2 b) (3 c))) 结果令我惊讶: ((1 2 3) (a b c)) 谁能解释一下它是如何工作的? 解决方案 (apply fx '(yz)) 等价于 (fxyz),所以你的代码是相当于 (map list '(1 a) '(2 b) '(3 c)). 当使用多个列表调用时, ..
发布时间:2022-01-02 23:18:47 其他开发

Clojure 中的外部连接

类似于这个问题:clojure 中的内连接 是否有对任何 Clojure 库中的地图集合执行外连接(左、右和完整)的函数? 我想可以通过修改clojure.set/join的代码来完成,但这似乎是一个足够普遍的要求,因此值得检查它是否已经存在. 像这样: (def s1 #{{:a 1, :b 2, :c 3}{:a 2, :b 2}})(def s2 #{{:a 2, :b ..
发布时间:2022-01-02 23:18:40 其他开发

Clojure“包含"的问题

我正在使用 Closure Box 浏览一些 Clojure 教程,并输入以下代码: user>(def stooges(矢量“Moe"“Larry"“Curly"))#'用户/走狗用户>(包含?走狗“萌")错误的 这不应该评估为 TRUE 吗?任何帮助表示赞赏. 解决方案 向量类似于数组.contains? 返回 true 如果key 存在于集合中.您应该寻找“键/索引"0、1 或 ..
发布时间:2022-01-02 23:18:32 其他开发

Resolve 函数在 ClojureScript 中引发错误,但不会在 Clojure 中引发错误

以下程序在 Clojure 中按我的预期工作,但在 ClojureScript 中引发错误.我想知道这是一个错误还是该功能在 ClojureScript 中根本不可用,或者我是否需要重新考虑我尝试这样做的方式.非常感谢您提前提供帮助. ;Clojure...(定义 foo [x] x)(defn foobee [x] (str (foo x) "bee"))(打印((resolve (symbo ..
发布时间:2022-01-02 23:18:24 其他开发

conj 在 Clojure 中的向量和列表上的行为差异

我是 clojure 的新手,最初我正在浏览 Clojure.org 和 作弊本 . 我想知道 conj 在列表和向量上的不同行为的确切原因是什么. (conj [1 2 3] 4)[1 2 3 4](conj (列表 3 2 1) 4)(4 3 2 1) 当我将它与列表一起使用时,它会在第一个位置添加元素,并在最后一个位置添加向量. 解决方案 conj 过程“根据具体类型在不同 ..
发布时间:2022-01-02 23:18:11 其他开发

为什么应该(每个?字符串?[])产生真?

查看every 的源代码? 清楚为什么 (每个?字符串?[]) =>真的 这是因为 every? 是递归实现的,并且使用 (nil? (seq coll)) 来结束递归.但是,我的问题是,这种行为有什么意义?只是被那个绊倒了. 我已经使用 解决了我的问题 (and (seq x) (every?string?x)) 解决方案 因为它的功能与 forall-量词相同.也就是说,它最 ..
发布时间:2022-01-02 23:18:04 其他开发

如何在 Clojure 中查看我的 STM 中的回滚次数?

如何在 Clojure 中查看我的 STM 中的回滚次数? 解决方案 你不能……除非你愿意作弊: (defmacro spy-dosync [& body]`(让[重试#(原子-1)结果#(同步(交换!重试# inc)~@body)](println "重试次数:" @retries#)结果#)) 然后将您的 dosync 替换为 spy-dosync. ..
发布时间:2022-01-02 23:17:54 其他开发