;; csp. processes are represented as delayed functions (define (STOP) (delay 'bleep)) (define (prefix c P) (lambda (x) (if (eq? x c) P 'bleep))) (define (choise2 c P d Q) (lambda (x) (if (eq? x c) P (if (eq? x d) Q 'bleep)))) (define (menu A P) (if (null? A) '() (if (eq? ((force P) (car A)) 'bleep) (menu (cdr A) P) (cons (car A) (menu (cdr A) P))))) ;; lazy eval? (define VMS (delay (prefix 'coin (prefix 'choc VMS))))