diff --git a/group-scheduling.rkt b/group-scheduling.rkt index d47eb52..226596b 100644 --- a/group-scheduling.rkt +++ b/group-scheduling.rkt @@ -7,7 +7,7 @@ math) ;; echoing verbosity - (define verbose? #t) + (define verbose? #f) (define (verbosity b) (set! verbose? b) @@ -19,7 +19,7 @@ ((_ str ...) (when verbose? (printf str ...))))) ;; current version - (define version "2020-10-11 14:28:50") + (define version "2020-10-12 09:48:02") (define (print-version) (printf "version: ~a~n" version)) @@ -28,10 +28,15 @@ (define %has-met %empty-rel) ;; collection of meetings... (define %t0 %empty-rel) ;; tentative collection... + ;; meetings recordered via %assert should only be recorded once + (use-occurs-check? #t) + (define (meeting p1 p2) - (vecho "meeting between: ~a & ~a~n" p1 p2) - (%assert! %has-met () ((p1 p2))) - (%assert! %has-met () ((p2 p1)))) + (vecho "meeting between: ~a & ~a~n" p1 p2) + (unless (have-they-met? p1 p2) + (begin + (%assert! %has-met () ((p1 p2))) + (%assert! %has-met () ((p2 p1)))))) ;; various meetings... ;; e.g. (combinations '(p1 p2 p3 p4 p5) 4) @@ -44,7 +49,7 @@ (meeting-2 p1 p3) (meeting-2 p2 p3)) - (define (meeting-4 p1 p2 p3 p4) + (define (meeting-4 p1 p2 p3 p4) ;; '((p1 p2 p3) (p1 p2 p4) (p1 p3 p4) (p2 p3 p4)) (meeting-3 p1 p2 p3) (meeting-3 p1 p2 p4) (meeting-3 p1 p3 p4)