actors: Add build-actions and retool make-action-dispatch to use it.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Tue, 3 May 2016 15:14:11 +0000 (10:14 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Tue, 3 May 2016 15:14:11 +0000 (10:14 -0500)
* 8sync/systems/actors.scm (build-actions): New macro.
  (make-action-dispatch): Retool to use build-actions.

8sync/systems/actors.scm

index 270b25f452909e5a000780bd7de5e968d47d63d2..c33240f309cc181dcf030b905a43b989e4cec186 100644 (file)
@@ -369,6 +369,9 @@ Which is like doing manually:
     ((_ (action-name handler))
      (cons (quote action-name) handler))))
 
+(define-syntax-rule (build-actions action-item ...)
+  (list (%expand-action-item action-item) ...))
+
 (define-syntax make-action-dispatch
   (syntax-rules ()
     "Expand a list of action names and actions into an alist
@@ -390,8 +393,7 @@ more compact following syntax:
    ((party actor message)
      (display \"Life of the party!\")))"
     ((make-action-dispatch action-item ...)
-     (simple-dispatcher
-      (list (%expand-action-item action-item) ...)))))
+     (simple-dispatcher (build-actions action-item ...)))))
 
 (define-syntax-rule (define-simple-actor class actions ...)
   (define-class class (<actor>)