Merge branch 'issue-44' into fixes-2022

This commit is contained in:
Imre Kószó 2022-07-31 15:49:08 +02:00
commit be68293056
2 changed files with 17 additions and 2 deletions

View file

@ -28,8 +28,10 @@
(unreduced-> (-> x# ~expr) ~@exprs)))))
(defn- pair? [x] (and (vector? x) (= 2 (core/count x))))
(defn- destructuring-pair? [x]
(and (pair? x) (not (or (keyword? x) (= '& x)))))
(let [kw-or-& #(or (keyword? %) (= '& %))]
(defn- destructuring-pair? [x]
(and (pair? x)
(not (kw-or-& (first x))))))
(defmacro for
"Like clojure.core/for with the first expression being replaced by % (or _). Returns a transducer.

View file

@ -142,3 +142,16 @@
(is (= (reverse (range 100)) (x/into [] (x/sort >) (shuffle (range 100)))))
(is (= (sort-by str (range 100)) (x/into [] (x/sort-by str) (shuffle (range 100)))))
(is (= (sort-by str (comp - compare) (range 100)) (x/into [] (x/sort-by str (comp - compare)) (shuffle (range 100))))))
(deftest destructuring-pair?
(let [destructuring-pair? #'x/destructuring-pair?]
(are [candidate expected]
(= expected (destructuring-pair? candidate))
'[a b] true
'[a b c] false
'[& foo] false
'[:as foo] false
1 false
'(a b) false
'{foo bar} false
'{foo :bar} false)))