From c7870086c56115e63174395a88a17ea94b201bc5 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 10 Dec 2015 12:59:33 +1300 Subject: [PATCH] sequence-transitions0, sequence-transitions0*, and sequence-transitions* --- prospect/core.rkt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/prospect/core.rkt b/prospect/core.rkt index 6560c34..f898cd3 100644 --- a/prospect/core.rkt +++ b/prospect/core.rkt @@ -272,8 +272,23 @@ [(transition state1 actions1) (transition state1 (cons actions0 actions1))])])) (define (sequence-transitions t0 . steps) + (sequence-transitions* t0 steps)) + +(define (sequence-transitions* t0 steps) (foldl transition-bind t0 steps)) +(define (sequence-transitions0 state0 . steps) + (sequence-transitions0* state0 steps)) + +(define (sequence-transitions0* state0 steps) + (match steps + ['() #f] + [(cons step rest) + (match (step state0) + [#f (sequence-transitions0* state0 rest)] + [(? quit? q) q] + [(? transition? t) (sequence-transitions* t rest)])])) + (define (inert? w) (and (queue-empty? (world-pending-action-queue w)) (set-empty? (world-runnable-pids w))))