From c66b62cf46b6171f064be900386526f453bb7375 Mon Sep 17 00:00:00 2001 From: Sam Caldwell Date: Tue, 31 Jul 2018 14:46:36 -0400 Subject: [PATCH] simple example --- racket/typed/examples/roles/ping-pong.rkt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 racket/typed/examples/roles/ping-pong.rkt diff --git a/racket/typed/examples/roles/ping-pong.rkt b/racket/typed/examples/roles/ping-pong.rkt new file mode 100644 index 0000000..16a1b9f --- /dev/null +++ b/racket/typed/examples/roles/ping-pong.rkt @@ -0,0 +1,23 @@ +#lang typed/syndicate/roles + +;; Expected Output +;; pong: 8339 + +(define-type-alias ds-type + (U (Tuple String Int) + (Observe (Tuple String ★/t)))) + +(dataspace ds-type + (spawn ds-type + (start-facet echo + (fields) + (on (asserted (tuple "ping" (bind x Int))) + (start-facet _ + (fields) + (assert (tuple "pong" x)))))) + (spawn ds-type + (start-facet serve + (fields) + (assert (tuple "ping" 8339)) + (on (asserted (tuple "pong" (bind x Int))) + (printf "pong: ~v\n" x))))) \ No newline at end of file