From 68ac32ef567f1997c8e9b676d98300cf627a4947 Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Mon, 6 Jun 2016 21:30:14 -0400 Subject: [PATCH] optimize if-path and selected? for non basic fn case --- scripts/benchmarks.clj | 3 +-- src/clj/com/rpl/specter/impl.cljx | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/benchmarks.clj b/scripts/benchmarks.clj index 13ad435..e057a92 100644 --- a/scripts/benchmarks.clj +++ b/scripts/benchmarks.clj @@ -52,7 +52,6 @@ ))) - (let [data {:a {:b {:c 1}}} p (comp-paths :a :b :c)] (run-benchmark "get value in nested map" 10000000 @@ -92,7 +91,7 @@ (run-benchmark "filter a sequence" 1000000 (doall (filter even? data)) (select [ALL even?] data) - (select-first (filterer even?) data) + (select-any (filterer even?) data) )) diff --git a/src/clj/com/rpl/specter/impl.cljx b/src/clj/com/rpl/specter/impl.cljx index 4840b0b..341612d 100644 --- a/src/clj/com/rpl/specter/impl.cljx +++ b/src/clj/com/rpl/specter/impl.cljx @@ -668,8 +668,8 @@ (defn not-selected?* [compiled-path structure] (->> structure - (compiled-select* compiled-path) - empty?)) + (compiled-select-any* compiled-path) + (kw-identical? NONE))) (defn selected?* [compiled-path structure]