2016-04-03 66 views
1

我想在Clojure中转换大量嵌套的表达式。 一个例子如下:将重嵌套的Clojure函数转换为线程形式

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

有螺纹的形式是:

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

是否有可能用Clojure创建帮我自动获得螺纹表格嵌套表格的函数或宏作为输入?或者是否有我可以使用的第三方工具?

+0

我想不出任何这种宏的用例;你能举个例子吗?或者你是否要求在源代码中使用编辑器来实现这一点? –

+0

@Elogent是的。我想这是用例是开发人员在重构嵌套代码时自己的便利。 –

+1

编写将*从*嵌套表单*转换为*线程表单的宏的唯一原因是,他们可以在源代码中编写嵌套表单,并让Clojure在宏展开阶段将其转换为线程表单。这样的宏将完全无用,因为线程宏只是将其转换回嵌套表单。 –

回答