annotate demo/ref.ur @ 1251:70092a661f70

Basic handling of recursive functions in Iflow
author Adam Chlipala <adamc@hcoop.net>
date Sat, 01 May 2010 09:51:46 -0400
parents 5819fb63c93a
children
rev   line source
adamc@419 1 structure IR = RefFun.Make(struct
adamc@643 2 type data = int
adamc@419 3 end)
adamc@419 4
adamc@419 5 structure SR = RefFun.Make(struct
adamc@643 6 type data = string
adamc@419 7 end)
adamc@419 8
adamc@732 9 fun mutate () =
adamc@419 10 ir <- IR.new 3;
adamc@419 11 ir' <- IR.new 7;
adamc@419 12 sr <- SR.new "hi";
adamc@419 13
adamc@434 14 IR.write ir' 10;
adamc@419 15
adamc@419 16 iv <- IR.read ir;
adamc@419 17 iv' <- IR.read ir';
adamc@419 18 sv <- SR.read sr;
adamc@419 19
adamc@434 20 IR.delete ir;
adamc@434 21 IR.delete ir';
adamc@434 22 SR.delete sr;
adamc@419 23
adamc@419 24 return <xml><body>
adamc@419 25 {[iv]}, {[iv']}, {[sv]}
adamc@419 26 </body></xml>
adamc@732 27
adamc@732 28 fun main () = return <xml><body>
adamc@732 29 <form><submit action={mutate} value="Do some pointless stuff"/></form>
adamc@732 30 </body></xml>