Optionally-named process behaviour functions

This commit is contained in:
Tony Garnock-Jones 2016-01-27 20:46:24 -05:00
parent de1dc5aa8e
commit 03efb19a4d
2 changed files with 20 additions and 9 deletions

View File

@ -239,11 +239,16 @@
(define (make-quit #:exception [exn #f] . actions)
(quit exn actions))
(define-syntax-rule (spawn-process behavior-exp initial-state-exp initial-action-tree-exp)
(spawn (lambda ()
(local-require racket/contract)
(list behavior-exp
(transition initial-state-exp initial-action-tree-exp)))))
(define-syntax spawn-process
(syntax-rules ()
[(_ #:name name-exp behavior-exp initial-state-exp initial-action-tree-exp)
(spawn (lambda ()
(list (procedure-rename behavior-exp name-exp)
(transition initial-state-exp initial-action-tree-exp))))]
[(_ behavior-exp initial-state-exp initial-action-tree-exp)
(spawn (lambda ()
(list behavior-exp
(transition initial-state-exp initial-action-tree-exp))))]))
(define-syntax-rule (spawn/stateless behavior-exp initial-action-tree-exp)
(spawn-process (stateless-behavior-wrap behavior-exp)

View File

@ -234,10 +234,16 @@
(define (make-quit #:exception [exn #f] . actions)
(quit exn actions))
(define-syntax-rule (spawn-process behavior-exp initial-state-exp initial-action-tree-exp)
(spawn (lambda ()
(list behavior-exp
(transition initial-state-exp initial-action-tree-exp)))))
(define-syntax spawn-process
(syntax-rules ()
[(_ #:name name-exp behavior-exp initial-state-exp initial-action-tree-exp)
(spawn (lambda ()
(list (procedure-rename behavior-exp name-exp)
(transition initial-state-exp initial-action-tree-exp))))]
[(_ behavior-exp initial-state-exp initial-action-tree-exp)
(spawn (lambda ()
(list behavior-exp
(transition initial-state-exp initial-action-tree-exp))))]))
(define-syntax-rule (spawn/stateless behavior-exp initial-action-tree-exp)
(spawn-process (stateless-behavior-wrap behavior-exp)