Fork me on GitHub
#specter
<
2018-04-16
>
steveh201800:04:44

Nathan, new to clojure, needed get-in but will now pursue specter. Can it navigate through ref boundaries in deeply nested combos of maps and vectors?

nathanmarz01:04:14

for navigating into refs you'd need to make your own navigator, but that is very easy – just use ATOM as an example: https://github.com/nathanmarz/specter/blob/master/src/clj/com/rpl/specter.cljc#L1081

steveh201801:04:31

Fantastic. Off to YouTube to see your talks.

tanzoniteblack20:04:27

Is there a way I can implement take-while via specter? Specifically, I (eventually down a path) have a sequence of items, and I want to take every item up to (and including) a certain value. Example:

[{:id :a} {:id :b} {:id :c} {:id :d}]
;; up to (& including) index: :c
;; ==> [{:id :a} {:id :b} {:id :c}]
current implementation using split-with:
(let [[steps-before steps-after] (split-with #(not= (:id %) :c) [{:id :a} {:id :b} {:id :c} {:id :d}])]
     (concat steps-before (take 1 steps-after)))

nathanmarz20:04:12

@tanzoniteblack you could do it with srange-dynamic