From 37eeae6bc2503281d1b806c85aa0e70645fd9966 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sun, 5 Apr 2009 11:24:55 -0400 Subject: RoundTrip demo --- demo/roundTrip.ur | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 demo/roundTrip.ur (limited to 'demo/roundTrip.ur') diff --git a/demo/roundTrip.ur b/demo/roundTrip.ur new file mode 100644 index 00000000..a2be8083 --- /dev/null +++ b/demo/roundTrip.ur @@ -0,0 +1,29 @@ +table channels : { Client : client, Channel : channel (string * int * float) } + +fun writeBack v = + me <- self; + r <- oneRow (SELECT channels.Channel FROM channels WHERE channels.Client = {[me]}); + send r.Channels.Channel v + +fun main () = + me <- self; + ch <- channel; + dml (INSERT INTO channels (Client, Channel) VALUES ({[me]}, {[ch]})); + + buf <- Buffer.create; + + let + fun receiver () = + v <- recv ch; + Buffer.write buf ("(" ^ v.1 ^ ", " ^ show v.2 ^ ", " ^ show v.3 ^ ")"); + receiver () + + fun sender s n f = + sleep 2000; + writeBack (s, n, f); + sender (s ^ "!") (n + 1) (f + 1.23) + in + return + + + end -- cgit v1.2.3