diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-08-09 19:23:31 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-08-09 19:23:31 -0400 |
commit | 0186af3d727b1b92e7b63925500a21d5e412d7b4 (patch) | |
tree | 6f836a2c222f87f521569b4110e0422d4291d37a /tests/option.lac | |
parent | 3232399b3893f93678a2d1a519bd0d4011275dba (diff) |
'Option' datatype encoding
Diffstat (limited to 'tests/option.lac')
-rw-r--r-- | tests/option.lac | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/option.lac b/tests/option.lac new file mode 100644 index 00000000..76fcc6ea --- /dev/null +++ b/tests/option.lac @@ -0,0 +1,25 @@ +datatype option a = None | Some of a + +val none_Hi : option string = None +val some_Hi = Some "Hi" +val none_some_Hi : option (option string) = None +val some_some_Hi = Some some_Hi + +val show = fn x => case x of None => "None" | Some x => x + +val show2 = fn x => case x of None => "None'" | Some x => show x + +val page = fn x => <html><body> + {cdata (show x)} +</body></html> + +val page2 = fn x => <html><body> + {cdata (show2 x)} +</body></html> + +val main : unit -> page = fn () => <html><body> + <li><a link={page none_Hi}>None1</a></li> + <li><a link={page some_Hi}>Some1</a></li> + <li><a link={page2 none_some_Hi}>None2</a></li> + <li><a link={page2 some_some_Hi}>Some2</a></li> +</body></html> |