我希望能够做这样的事情:
(search data
list?
(fn [x] (and (list? x) (= 4 (first x))))
(fn [x] (and (set? x) (contains x 3))))
并让它递归搜索嵌套数据结构data
:
- 首先是最浅的列表(例如,可能在一组集合中)。
- 然后在那些最浅的列表中,谁的第一个元素是
4
. - 然后在那些包含 3 的最浅集的列表中。
- 最后返回在步骤 3 中找到的项目列表。
在我重新发明轮子之前,有没有标准的方法来做到这一点?