Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (def data [{:a 1 :b 2} {:a 3 :b 4}])
- (defn f [m]
- {:c (* 200 (:a m))})
- (defn g [m]
- {:d (+ 2 (:b m))})
- (defn h [m]
- {:e (- (:a m) (:b m))})
- (defn lomm
- "let over map merge
- (lomm f g h data) => (let [f-xs (map f data)
- g-xs (map g data)
- h-xs (map h data)]
- (map merge f-xs g-xs h-xs))
- Example:
- `(def data [{:a 1 :b 2} {:a 3 :b 4}])
- (defn f [m]
- {:c (* 200 (:a m))})
- (defn g [m]
- {:d (+ 2 (:b m))})
- (defn h [m]
- {:e (- (:a m) (:b m))})
- (lomm f g h data)
- ;; => ({:c 200, :d 4, :e -1} {:c 600, :d 6, :e -1})`"
- [& more]
- (let [data (last more)
- f-xs (butlast more)
- partial-xs (map #(map % data) f-xs)]
- (apply map merge partial-xs)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement