clojure - 在 Clojure 中惯用地迭代 2(或更高)维序列

标签 clojure

在 Clojure 中是否有一种“正确”的方法来迭代二维序列?
假设我有一个数字列表,就像这样

 ((1 2 3)
  (4 5 6)
  (7 8 9))

我想生成一个新的列表列表,每个数字加一。在 Clojure 中是否有一种简单的方法可以在不依赖嵌套映射或循环/递归的情况下执行此操作?我已经能够做到,但是我的解决方案很难看,而且当我重新阅读它们时,我发现它们很难理解。

谢谢

最佳答案

你总是可以只使用列表理解。我发现自己经常使用它们来自命令式背景,所以我不知道它是多么地道。在您的具体情况下,您可以执行以下操作:

(for [my-list my-matrix] (map inc my-list))

关于clojure - 在 Clojure 中惯用地迭代 2(或更高)维序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089074/

相关文章:

clojure - 我如何从clojure中给定的两个值一个一个地调用一个函数

lisp - Lisp/Clojure 中的过程和#'过程有什么区别?

debugging - Clojure, Quil : Creating/debugging generic functions

java - 在eclipse上安装逆时针插件失败

clojure - 在Clojure中读取无缓冲的键盘输入

clojure - 在 Clojure 中使用多方法而不是 cond 有什么好处?

emacs - 如何编写 emacs lisp 代码来添加新的突出显示模式?

testing - 如何测试使用 gensyms 的 clojure 宏?

clojure - 在运行时从 clojure 确定文件脚本目录

clojure - 引用 clojure.core//(divide) 时出错