diff --git a/os-big-bang-example.rkt b/os-big-bang-example.rkt index 5ddade1..2a06f8b 100644 --- a/os-big-bang-example.rkt +++ b/os-big-bang-example.rkt @@ -37,37 +37,39 @@ (send-message `(tick ,counter ,now)) (loop now (+ counter 1)))])))) -(ground-vm - (os-big-bang 'none - (subscribe 'display-driver display-driver-handler) - (subscribe 'read-line-driver read-line-driver-handler) - (tick-driver 'ticker 1000) - (send-message `(display "Hello! ")) - (send-message 'greet-loop) - (subscribe 'greet-loop-handler - (message-handlers w - ['greet-loop - (transition w - (send-message `(display "Enter your name:\n")) - (send-message `(request read-name read-line)))])) - (subscribe 'ticker-handler - (message-handlers w - [`(tick ,counter ,_) - (transition w - (send-message - `(display ,(string-append "TICK " - (number->string counter) - "\n"))))])) - (subscribe 'read-line-result-handler - (message-handlers w - [`(reply read-name ,(== eof)) - (transition w - (send-message `(display "Goodbye!\n")))] - [`(reply read-name ,name) - (transition w - (send-message `(display "Hello, ")) - (send-message `(display ,name)) - (send-message `(display "!\n")) - (unsubscribe 'ticker) - (send-message 'greet-loop) - )])))) +(define main + (os-big-bang 'none + (subscribe 'display-driver display-driver-handler) + (subscribe 'read-line-driver read-line-driver-handler) + (tick-driver 'ticker 1000) + (send-message `(display "Hello! ")) + (send-message 'greet-loop) + (subscribe 'greet-loop-handler + (message-handlers w + ['greet-loop + (transition w + (send-message `(display "Enter your name:\n")) + (send-message `(request read-name read-line)))])) + (subscribe 'ticker-handler + (message-handlers w + [`(tick ,counter ,_) + (transition w + (send-message + `(display ,(string-append "TICK " + (number->string counter) + "\n"))))])) + (subscribe 'read-line-result-handler + (message-handlers w + [`(reply read-name ,(== eof)) + (transition w + (send-message `(display "Goodbye!\n")))] + [`(reply read-name ,name) + (transition w + (send-message `(display "Hello, ")) + (send-message `(display ,name)) + (send-message `(display "!\n")) + (unsubscribe 'ticker) + (send-message 'greet-loop) + )])))) + +(ground-vm main)