.toUpperCase or .toLowerCase but specify Locale/ENGLISH.
When the pupil is ready to learn, a teacher will appear.
.toUpperCase or .toLowerCase but specify Locale/ENGLISH.
(merge-with + {:a 12} {:b 4} {:a 3 :b 7}) return?{:b 11, :a 15} when there are several values for a key, these values are merged (two at a time) using the specified function — here they are summed.merge-with?(apply merge-with + (map (fn [x] {x 1}) coll)) or, using for: (apply merge-with + (for [x coll] {x 1})).(select (html-resource (java.net.URL. "http://clojure-log.n01se.net/")) [:#main [:a (attr? :href)]]) returns a seq of link nodes.
(reduce #(assoc %1 %2 (inc (%1 %2 0))) {} coll). Since it can take some time to get accustomed to the functional way of thought, here is how one can work such an expression out:(count (filter #{42} coll))reduce?(defn my-count [coll] (reduce (fn [n _] (inc n)) 0 coll))reduce?(reduce (fn [n _] (inc n)) 0 (filter #{42} coll))filter?(reduce (fn [n x] (if (= 42 x) (inc n) n)) 0 coll){42 occurences-count}.(reduce (fn [m x] (if (= 42 x) (assoc m 42 (inc (m 42))) m)) {42 0} coll)(reduce (fn [m x] (if (= 42 x) (assoc m x (inc (m x))) m)) {42 0} coll){42 0} with {}?(inc (m x)) would fail because (m x) would return nil.(a-map a-key default-value){42 0} with {}?(reduce (fn [m x] (if (= 42 x) (assoc m x (inc (m x 0))) m)) {} coll)(reduce (fn [m x] (assoc m x (inc (m x 0)))) {} coll) or, terser, (reduce #(assoc %1 %2 (inc (%1 %2 0))) {} coll)(merge-with + {:a 12} {:b 4} {:a 3 :b 7}) return?merge-with?(do (defmacro foobar [x] (doto x println)) (foobar (+ 1 1)))?foobar is treated as a function (its argument has been evaluated) because foobar is unknown before the whole top-level expression is compiled.foobar preexists and is a macro, (foobar (+ 1 1)) is expanded.with-test to test macros. It's the kind of bug that goes unnoticed while developing incrementally and evaluating in the same REPL, it was waiting for me to start a fresh REPL.
net.cgrand.enlive-html=> (sniptest "<div id=user-data>"You also need to remove most attributes but it's just a demo of something that was impossible with the old Enlive.
[:#user-data] (html-content "code injection<script>alert('boo')</script>")
[:#user-data (but #{:p :br :a :strong :em})] nil)
"<html><body><div id=\"user-data\">code injection</div></body></html>"
interleave, take-nth and map or a combination of mapcat and partition when I thought of this:(map #(%1 %2) (cycle [f identity]) coll)I really love clojure's map parallel processing. (I should ask if
every? and some could be allowed to take several colls.)