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