extend-transition* and prefix-transition*
This commit is contained in:
parent
cabdd27917
commit
a40dbe0d97
|
@ -1,6 +1,7 @@
|
|||
;; Emacs indent settings
|
||||
(progn
|
||||
(mapcar #'(lambda (x) (put x 'scheme-indent-function 1))
|
||||
'(transition extend-transition prefix-transition))
|
||||
'(transition extend-transition prefix-transition
|
||||
extend-transition* prefix-transition*))
|
||||
(mapcar #'(lambda (x) (put x 'scheme-indent-function 2))
|
||||
'(role role/fresh yield)))
|
||||
|
|
16
os2.rkt
16
os2.rkt
|
@ -21,7 +21,9 @@
|
|||
(except-out (struct-out transition) transition)
|
||||
(rename-out [make-transition transition])
|
||||
extend-transition
|
||||
extend-transition*
|
||||
prefix-transition
|
||||
prefix-transition*
|
||||
|
||||
role
|
||||
role/fresh
|
||||
|
@ -213,11 +215,25 @@
|
|||
[(transition state actions) (transition state (list actions more-actions))]
|
||||
[state (transition state more-actions)]))
|
||||
|
||||
(define (extend-transition* t fn)
|
||||
(match t
|
||||
[(transition state actions)
|
||||
(prefix-transition (fn state) actions)]
|
||||
[state
|
||||
(fn state)]))
|
||||
|
||||
(define (prefix-transition t . more-actions)
|
||||
(match t
|
||||
[(transition state actions) (transition state (list more-actions actions))]
|
||||
[state (transition state more-actions)]))
|
||||
|
||||
(define (prefix-transition* t fn)
|
||||
(match t
|
||||
[(transition state actions)
|
||||
(extend-transition (fn state) actions)]
|
||||
[state
|
||||
(fn state)]))
|
||||
|
||||
;;---------------------------------------------------------------------------
|
||||
;; Topics and roles
|
||||
|
||||
|
|
Loading…
Reference in New Issue