From e00f079871a6c3ed133bc20bb8c64f55a94cf77e Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 24 Apr 2015 17:30:51 -0400 Subject: [PATCH] Check whether avoiding delays maintains truth --- prospect/examples/forward-chaining.rkt | 30 +++++++++++++++----------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/prospect/examples/forward-chaining.rkt b/prospect/examples/forward-chaining.rkt index 15d6211..d8cb57d 100644 --- a/prospect/examples/forward-chaining.rkt +++ b/prospect/examples/forward-chaining.rkt @@ -84,17 +84,21 @@ (define (after msec thunk) (define id (gensym 'after)) - (list - (spawn (lambda (e s) (and (message? e) (quit (thunk)))) - (void) - (sub (timer-expired id ?))) - (message (set-timer id msec 'relative)))) + (if (zero? msec) + (thunk) + (list + (spawn (lambda (e s) (and (message? e) (quit (thunk)))) + (void) + (sub (timer-expired id ?))) + (message (set-timer id msec 'relative))))) -(after 1000 (lambda () - (printf "----- Retracting\n") - (message `(retract (parent bob john))))) -(after 2000 (lambda () - (printf "----- Asserting\n") - (list (insert-record `(parent bob mary)) - (insert-record `(parent mary sue)) - (insert-record `(parent sue john))))) +(define use-delays? #t) + +(after (if use-delays? 1000 0) (lambda () + (printf "----- Retracting\n") + (message `(retract (parent bob john))))) +(after (if use-delays? 2000 0) (lambda () + (printf "----- Asserting\n") + (list (insert-record `(parent bob mary)) + (insert-record `(parent mary sue)) + (insert-record `(parent sue john)))))