From 09d0d071efaef4fe18e3feae2f406333ea474497 Mon Sep 17 00:00:00 2001 From: nathanmarz Date: Sun, 24 Dec 2017 10:50:22 -0500 Subject: [PATCH] improve compact implementation --- src/clj/com/rpl/specter.cljc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/clj/com/rpl/specter.cljc b/src/clj/com/rpl/specter.cljc index 29d1ef1..4401da1 100644 --- a/src/clj/com/rpl/specter.cljc +++ b/src/clj/com/rpl/specter.cljc @@ -1456,10 +1456,11 @@ coll? [ALL-WITH-META p] ))) -(let [compact* (stay-then-continue (if-path empty? (terminal-val NONE)))] +(let [empty->NONE (if-path empty? (terminal-val NONE)) + compact* (fn [nav] (multi-path nav empty->NONE))] (defdynamicnav compact "During transforms, after each step of navigation in subpath check if the value is empty. If so, remove that value by setting it to NONE." [& path] - (interleave (repeat (count path) compact*) path) + (map compact* path) ))