2016-04-03 56 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在宏展開階段將其轉換爲線程表單。這樣的宏將完全無用,因爲線程宏只是將其轉換回嵌套表單。 –

回答