Provide another indirection procedure with wrap-apply
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 23 Nov 2015 22:14:08 +0000 (16:14 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 23 Nov 2015 22:14:08 +0000 (16:14 -0600)
eightsync/agenda.scm

index adbd0c688f402def34b35cf01ef7db7ace697cee..1bfc0a3a941ac148d4214b014b8e1878d23c5e85 100644 (file)
@@ -61,7 +61,7 @@
             port-request-port
             port-request-read port-request-write port-request-except
 
-            run-it wrap run run-at run-delay
+            run-it wrap wrap-apply run run-at run-delay
 
             %port-request %run %run-at %run-delay
             8port-request 8run 8run-at 8run-delay
@@ -382,6 +382,12 @@ Will produce (0 . 0) instead of a negative number, if needed."
   (lambda ()
     body ...))
 
+(define-syntax-rule (wrap-apply body)
+  "Wrap possibly multi-value function in a procedure, applies all arguments"
+  (lambda args
+    (apply body args)))
+
+
 ;; @@: Do we really want `body ...' here?
 ;;   what about just `body'?
 (define-syntax-rule (run body ...)