首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从列表列表中删除列表

从列表列表中删除列表
EN

Stack Overflow用户
提问于 2015-11-30 15:02:01
回答 2查看 368关注 0票数 0

我有一份清单,例如:

代码语言:javascript
运行
复制
(def lst '((a b c) (d e) (f g h)))

我需要创建一个新的列表,删除了一个内部列表,我尝试了

代码语言:javascript
运行
复制
(remove '(d e) lst)

回传

代码语言:javascript
运行
复制
java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to clojure.lang.IFn

我也试过

代码语言:javascript
运行
复制
(filter (not= '(d e)) lst)

回传

代码语言:javascript
运行
复制
java.lang.ClassCastException: null
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-30 15:06:21

如果要使用filter,请注意第一个参数必须是一个函数,因此可以使用

代码语言:javascript
运行
复制
(filter #(not= '(d e) %) lst)

这就是你得到ClassCastException的原因。

remove也是如此。您还可以使用partial而不是匿名函数:

代码语言:javascript
运行
复制
(remove (partial = '(d e)) lst)
票数 4
EN

Stack Overflow用户

发布于 2015-11-30 15:06:32

过滤器函数和删除函数都期望第一个参数是谓词函数。您可以使用部分函数将运算符=转换为谓词:

代码语言:javascript
运行
复制
(remove (partial = '(d e)) lst)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34001569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档