Let `zapf` take many pairs
    
        | author | Steve Losh <steve@stevelosh.com> | 
    
        | date | Mon, 08 Aug 2016 13:39:27 +0000 | 
    
    
        | parents | 5dda89e955a3 | 
    
        | children | a25df85e26e5 | 
    
        | branches/tags | (none) | 
    
        | files | losh.lisp | 
Changes
    
--- a/losh.lisp	Sun Aug 07 13:54:42 2016 +0000
+++ b/losh.lisp	Mon Aug 08 13:39:27 2016 +0000
@@ -210,9 +210,11 @@
   "Multiply `place` by `n` in-place."
   `(zap% ,place #'* % ,n))
 
-(defmacro zapf (place function)
-  "Update `place` with the result of calling `function` on it."
-  `(zap% ,place ,function %))
+(defmacro zapf (&rest args)
+  "Zap each place with each function."
+  `(progn
+    ,@(iterate (for (place function) :on args :by #'cddr)
+               (collect `(zap% ,place ,function %)))))
 
 
 ;;;; Hash Tables