File: coll.clj

package info (click to toggle)
fonts-firacode 6.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,796 kB
  • sloc: sh: 287; python: 146; makefile: 19
file content (25 lines) | stat: -rw-r--r-- 466 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(ns fira-code.coll)


(defn index-of [pred xs]
  (let [res (reduce (fn [i x] (if (pred x) (reduced i) (inc i))) 0 xs)]
    (if (>= res (count xs))
      -1
      res)))


(defn group-by-to [key-fn value-fn xs]
  (reduce-kv
    (fn [m k vs]
      (assoc m k (value-fn vs)))
    {}
    (group-by key-fn xs)))


(defn multimap-by [f & kvs]
  (reduce
    (fn [m [k v]]
      (if (contains? m k)
        (update m k f v)
        (assoc m k v)))
    {} (partition 2 kvs)))