在 Clojure 中使用 Spectre 删除嵌套值

2024-01-27

假设我有一个像这样的 Clojure 映射:

(def mymap {:a [1 2 3] :b {:c [] :d [1 2 3]}})

我想要一个函数 remove-empties 生成一个新映射,其中删除 (:b mymap) 中具有空序列作为值的条目。因此 (remove-empties mymap) 将给出以下值:

{:a [1 2 3] :b {:d [1 2 3]}}

有没有办法使用 Spectre 编写一个函数来执行此操作?


以下是如何做到这一点Specter https://github.com/nathanmarz/specter:

(use 'com.rpl.specter)

(setval [:b MAP-VALS empty?] NONE my-map)
=> {:a [1 2 3], :b {:d [1 2 3]}}

在英语中,这表示“在:b,找到所有的地图值empty?。将它们设置为NONE,即删除它们。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Clojure 中使用 Spectre 删除嵌套值 的相关文章

  • Clojure 中使用 clj-http 进行基本身份验证

    我们正在使用clj http https github com dakrone clj http进行 HTTP 基本身份验证 我想发送带有此标头的请求 Authorization Basic dXNlcm5hbWU6cGFzc3dvcmQ
  • Clojure 中的相互递归定义

    如何在 Clojure 中进行相互递归定义 下面是 Scala 中使用递归定义查找素数的代码 val odds Stream Int cons 3 odds map 2 val primes Stream Int cons 2 odds f
  • 重新创建一棵扁平的树

    我有一个地图向量 我想以嵌套方式对其进行转换 数据结构如下 def data id 1 name a parent 0 id 2 name b parent 0 id 3 name c parent 0 id 4 name a 1 pare
  • 懒惰的 juxt 函数有什么优点吗?

    在回答中一个问题 https stackoverflow com questions 10044254 is there a reverse map function关于一个使用相同参数映射多个函数的函数 A juxt 我想出了一个基本上采
  • Clojure:在特定命名空间中启动 repl

    我安装了 boot clj 并且希望能够在外部编辑器中编辑 clj 文件 并单独运行一个命令行 REPL 我可以从中调用我在 clj 文件中更改的函数 不需要特殊的重新加载命令 另一件事是我不想手动键入命令来包含命名空间 我只想运行一个将我
  • 是否有一个在线工具可以像 JSON 一样自动缩进和格式化 Clojure 代码?

    有很多在线工具可以获取 JSON 文本 并向您显示该文本的格式化和缩进格式 有些甚至更进一步 形成了一个漂亮的树状结构 http jsonviewer stack hu http jsonviewer stack hu 我们有类似的 Clo
  • pmap 和线程数

    user gt Runtime getRuntime availableProcessors 2 并评估这个例子 http clojuredocs org clojure core clojure core pmap example 684
  • clojure 的 emacs slime-connect 版本不会查找 $CLASSPATH

    我需要将 clojure 函数与 slime connect 一起使用 我将所有库都放在 CLASSPATH 中 据我了解这个问题 https stackoverflow com questions 3376840 clojure clas
  • Clojure 函数 - 返回最后一条语句之前计算的值

    我有一些用 Clojure 编写的测试 这是一个简单的例子 defn test1 start server run pvt and expect PVT 0 stop server 我想返回 run pvt and expect 的结果 但
  • 如何使用 core.async 在 Clojure 中写入日志文件?

    我想使用 core async 作为写入文件的记录器 因此我创建了一个 test txt 文件 将其粘贴在我的资源文件夹中并编写了以下代码 use clojure java io use clojure core async def pri
  • Clojure/Java:用于声音频谱分析的 Java 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以接受大量音频数据并返回给定频带内随时间变化的平均幅度的库 我已经在 comp dsp
  • 为什么 clojure future 会阻塞主线程?

    我有一个简单的 lein 项目 其中 main包含一个未来 def f future 42 defn main args println f 当我跑步时lein run它打印42但不返回 我不明白为什么它不返回 如何得到lein run回来
  • 为什么 Clojure MySQL 查询结果中出现“M”

    我有一个返回一行的 Clojure 查询 下面是返回行 映射 的部分打印输出 employer percent 0 00M premium 621 44M 这两列在mysql表中分别是decimal 5 2 和decimal 7 2 为什么
  • 如何在 Clojure 中链接 Promise

    在 Scala 中 您可以使用map and flatMap在未来的成功结果上运行函数 val x Future Int val y Future String x map toString 有没有比以下更好的 Clojure 类似物 de
  • Clojure:让作用域和函数返回值

    我在弄清楚如何使用 let 形式时遇到了一些麻烦 在下面的示例中 我想在本地绑定值 cols 以便稍后在函数中处理它 然而 我注意到 如果我使用 let 函数 sel opt tmp 将返回 nil 值而不是列表 defn sel opt
  • 使用 CounterClockwise 和 Eclipse 在 Clojure REPL 中进行评估

    我通常使用 Emacs 但受到启发再次尝试 CCW Eclipse 我有一个 Clojure 测试项目 其源文件 src user clj 包含以下内容 ns user println hi 我有一个 REPL 我从 Window gt S
  • Clojure:只能从尾部位置重复

    我正在尝试递归地反转列表 但是我得到了Can only recur from tail position运行时 这到底意味着什么 如何改进我的代码才能使其正常工作 defn recursive reverse coll loop coll
  • 如何编写 Clojure 宏来从字符串创建正则表达式?

    我正在创建一个方便的宏 部分便利在于可以仅使用字符串来指定正则表达式 而不是使用 re 表示法 我无法弄清楚的一部分是如何让宏获取字符串并将其重写为 Clojure 正则表达式 例如 生成 re 符号 我认为这是一个语法 转义问题 我的第一
  • 什么是 fn* 以及 Clojure 如何引导?

    The Clojure core 的来源 https github com clojure clojure blob master src clj clojure core clj似乎假设预先存在fn 这是在哪里定义的 引导程序还需要什么
  • Clojure def 与 defn 对于没有参数的函数

    我用 clojure 编写了一个程序 但有些函数没有参数 将此类函数编码为 def 而不是不带参数的 defn 有什么优点 def t0 System currentTimeMillis defn t1 System currentTime

随机推荐

  • Visual Studio 2015 + Xamarin + 本机便携式 PCL + WCF

    因此 我们的企业正在使用 Visual Studio 走 Xamarin 路线 浏览所有在线文档表明 从 Web 服务创建 WCF 代理客户端并将其放置在 PCL 中应该很简单 经过一番努力并试图找出为什么我无法使用 SLSVcUtil e
  • JavaScript使用变量的基本功能

    我目前正在 Codecademy 上学习 JavaScript 在那里 它给出了一个基本变量的示例 var divideByThree function number var val number 3 console log val 然而
  • C# 使用反射时确定 Nullable 属性 DateTime 类型

    我有一个关于如何确定对象的 Nullable 属性类型的问题 ObjectA有财产DateTime CreateDate 当我像下面的代码一样迭代它的属性时 如何检查属性是否是Nullable DateTime type foreach P
  • 在 PowerShell v3 中运行并行 Invoke-WebRequest 作业

    在 PowerShell 中运行同步后台作业非常简单 但我似乎无法让它与新的 v3 中 cmdlet Invoke WebRequest 一起使用 我正在通过 PowerShell 以脚本方式下载数千个文件 效果很好 但串联起来需要几天时间
  • 将计算列转换为常规列

    我在 SQL Server 2005 的一个大表中有一个持久计算列 我想将其转换为常规列 保留当前值 我是否必须重新创建列并更新事务中的整个表 或者是否可以仅更改计算列规范 以及如何操作 Create a new Column unpers
  • SCons 不会清除所有文件

    我有一个包含 builds 目录的文件系统 每个目录都包含一个名为 build info xml 的文件 然而 一些构建发生在构建脚本生成 build info xml 之前 因此在这种情况下 我有一个有点不平凡的 SCons SConst
  • execCommand insertHTML 中断存储的 window.getSelection()

    当使用在页面中选择文本和恢复所选文本的方法时 我发现运行execCommand insertHTML in Between 会导致存储的选择中断 这是如何选择和恢复文本的示例 Get Selection var sel window get
  • 将php文件加载到布局模板中?

    我正在开发我的第一个 php 网站 我遇到了一个我无法解决的问题 我试图拥有一个包含我的结构的 php 页面 以及其他在其中注入 html 的页面 同时保留 url 更改 以便我仍然可以直接链接页面 到目前为止 这就是我正在做的事情 但似乎
  • ggmap 具有值的热图

    谁能帮我制作 ggmap 热图 我的数据 val Qtd lt c 34 10 11 7 55 18 33 16 16 249 nom State lt c Distrito Federal Bahia Ceara Espirito San
  • 突出显示 Jupyter 单元中的部分代码

    有没有办法突出显示 Jupyter 单元格的某些行 类似于下图的内容 我用照片编辑器创建的 我的意思不是用光标进行选择 而是永久性的选择 例如 当您想要突出显示新添加的代码时 这对于演示文稿非常有用 下面提供的 Jupyter 笔记本扩展允
  • 当我不知道创建时的最大大小时,如何使用 Lucene 的 PriorityQueue?

    我为 Lucene Net 构建了一个自定义收集器 但我不知道如何对结果进行排序 或分页 每次调用 Collect 时 我都可以将结果添加到内部 PriorityQueue 中 我认为这是执行此操作的正确方法 我扩展了 PriorityQu
  • Objective C - 如果没有什么不同就使用访问器

    在目标c中 如果使用getter和直接访问ivar做完全相同的事情 getter中没有延迟加载代码 它所做的只是返回ivar 您是否仍然使用访问器或直接访问ivar 因为有没有不同 为什么 编辑 我说的是课堂内部 直接使用 ivar 会带来
  • JNI:从 C++ 到 Java 传递字节

    HANDLE hFile CreateFileA C myfile zip GENERIC READ 0 NULL OPEN EXISTING FILE ATTRIBUTE NORMAL NULL const int size GetFil
  • 如何强制执行父子结构的生命周期?

    我正在为外部 C 库编写包装器代码 并且试图说服 Rust 编译器强制执行 Rust 代码本身未反映的外部生命周期限制 例如 一种类型的 不透明句柄 可以返回仅在父句柄的生命周期内有效的子句柄 我尝试过std marker PhantomD
  • iOS 禁用键盘 Tab 箭头

    我需要使用 JavaScript 甚至基于 Web 的应用程序元标记 如果有 来禁用 IOS 上的键盘选项卡箭头 我尝试了一些选项 但在选择菜单时遇到了问题 我也无法将所有 tabindex 恢复为 1 因为这会损害桌面和其他设备上的选项卡
  • 打字稿检查类型 A === 类型 B | C型

    在一个文件中我有这样的内容 export const all a b c d e f type AllKeysType typeof all export type AllKey keyof AllKeysType 在另一个文件中我有这样的
  • macOS 上的 RTLD_GLOBAL 和二级命名空间

    阅读 Apple 文档后执行 Mach O 文件 https developer apple com library content documentation DeveloperTools Conceptual MachOTopics 1
  • 有没有办法获取android应用程序的安装程序源

    我们如何才能获取在我们的设备上安装软件包的安装源信息 我想获取其他已安装应用程序的安装程序源 而不仅仅是我的应用程序 以验证其完整性 是的 您可以获得应用程序的安装程序 您可以使用以下命令获取安装程序的包名称获取安装程序源信息 https
  • 基于同一模型中的另一个外键动态限制 Django 模型中外键的​​选择

    我有这些模型 class UserProfile models Model name models CharField max length 100 class Dialog models Model belong to models Ma
  • 在 Clojure 中使用 Spectre 删除嵌套值

    假设我有一个像这样的 Clojure 映射 def mymap a 1 2 3 b c d 1 2 3 我想要一个函数 remove empties 生成一个新映射 其中删除 b mymap 中具有空序列作为值的条目 因此 remove e