ren*_*ins 3 functional-programming clojure
我有哈希映射,我正试图获得密钥之间的交集.但功能"交集"只适用于集合.
所以我得到了密钥,将密钥转换为集合,然后调用交集,如下所示:
(intersection (set (keys map-1)) (set (keys map-2)))
Run Code Online (Sandbox Code Playgroud)
还有更好的方法吗?
谢谢
这可能是最简单/最简洁的方法,它不需要构建任何集合(这是相对昂贵的).
(keys (select-keys map-1 (keys map-2)))
Run Code Online (Sandbox Code Playgroud)
最后,一个优化版本,速度更快,更难阅读:
(keep #(some->> % (find map-1) key) (keys map-2))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1507 次 |
| 最近记录: |