将重度嵌套的Clojure函数转换为线程形式

时间:2016-04-03 12:52:09

标签: clojure functional-programming expression

我正在尝试在Clojure中转换重度嵌套的表达式。 一个例子如下:

(distinct (flatten (map keys (flatten (filter vector? (vals data))))))

线程形式为:

(->> data vals (filter vector?) flatten (map keys) flatten distinct)

在Clojure中是否可以创建一个函数或宏来帮助我自动获取带有嵌套表单的线程表单作为输入?或者我可以使用任何第三方工具吗?

1 个答案:

答案 0 :(得分:5)

如果你正在使用CIDER,我会推荐clj-refactor。它具有->->>以及a whole bunch of other stuff的重构功能。