(def zipdate (func subject . indices) (iflet (first . rest) indices (copdate subject first [apply zipdate func _ rest]) func.subject)) (def zet (subject . args) (apply zipdate [do t] subject args)) (zap zet the-piles n 0 1)