Guest User

Untitled

a guest
Sep 25th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (defn with-propagation0
  2.   [sign opts field includer]
  3.   (if-let [outer (sign opts)]
  4.     (if-let [inner (outer (keyword field))]
  5.       (let [down (assoc opts sign inner)]
  6.         (includer down)))))
  7.  
  8. (defn with-propagation1
  9.   "if (-> nest0 selector-1 (keyword selector-2)),
  10. calls action on nest0 with the key selector1 bound to the binding of selector2
  11. within the previous value of selector1"
  12.   [selector-1 nest-0 selector-2 action]
  13.   (when-let [nest-1 (selector-1 nest-0)]
  14.     (when-let [nest-2 (nest-1 (keyword selector-2))]
  15.       (let [down (assoc nest-0 selector-1 nest-2)]
  16.         (action down)))))
  17.  
  18. (defn with-propagation2
  19.   [selector-1 nest selector-2 action]
  20.   (when-let [nest-1 (-> nest selector-1 ((keyword selector-2)))]
  21.     (let [nest (assoc nest selector-1 nest-1)]
  22.       (action nest))))
Add Comment
Please, Sign In to add comment