clojure - 映射所有元素,保留向量结构
问题描述
例如,我怎样才能最好地实现这种转变:
[[[1 2]] [3 4] [[5] 6]] -> [[[2 3]] [4 5] [[6] 7]]
有没有一种惯用的方法,有任意数量的级别?
解决方案
您可以clojure.walk
用来增加任意嵌套结构中的数字:
(def data [[[1 2]] [3 4] [[5] 6]])
(clojure.walk/postwalk
#(if (number? %) (inc %) %)
data)
=> [[[2 3]] [4 5] [[6] 7]]
推荐阅读
- java - 尝试打印整个数组时出现 ArrayIndexOutOfBoundsException
- sql - 如何在 Oracle 数据库中添加两个列的月份
- javascript - 将数据对象传递给另一个视图 - React
- raku - 使用 Perl6 哈希键定义与存在
- r - 获得几个国家最低的行政级别
- sql - Sqlite 名称和使用临时表达式
- windows - VBScript 远程执行 Microsoft Excel DCOM 失败
- azure-devops - 在生成的工件中仅包含一组文件夹
- eclipse - 在 Eclipse/STS 的 Spring Boot 中使用嵌入式 Tomcat 运行 Spring MVC
- opengl - 如何比较 GLSL 脚本中的浮点数?