- (defn foo
- [x y & args]
- (loop [results {}
- a (first args)
- b (second args)
- more (drop 2 args)]
- (if-not (and a b)
- results
- (recur (assoc results (x a) (y b))
- (first more)
- (second more)
- (drop 2 more)))))
user=> (foo identity inc :a 1 :b 2 :c 3)
{:c 4, :b 3, :a 2}