Mercurial > urweb
annotate tests/where.ur @ 1505:8c851e5508a7
Tutorial: up to First-Class Polymorphism
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sun, 17 Jul 2011 11:00:04 -0400 |
parents | 8bb46d87b074 |
children |
rev | line source |
---|---|
adamc@209 | 1 table t1 : {A : int, B : string, C : float} |
adamc@209 | 2 table t2 : {A : float, D : int} |
adamc@209 | 3 |
adamc@209 | 4 val q1 = (SELECT * FROM t1) |
adamc@209 | 5 val q2 = (SELECT * FROM t1 WHERE TRUE) |
adamc@209 | 6 val q3 = (SELECT * FROM t1 WHERE FALSE) |
adamc@210 | 7 val q4 = (SELECT * FROM t1 WHERE {True}) |
adamc@219 | 8 val q5 = (SELECT * FROM t1 WHERE {1} = {1}) |
adamc@219 | 9 val q6 = (SELECT * FROM t1 WHERE {"Hi"} < {"Bye"}) |
adamc@279 | 10 val q7 = (SELECT * FROM t1 WHERE {1} = {1} AND NOT ({"Hi"} <= {"Bye"})) |
adamc@222 | 11 val q8 = (SELECT * FROM t1 WHERE t1.A = 1 OR t1.C < 3.0) |
adamc@255 | 12 |
adamc@255 | 13 datatype list a = Nil | Cons of a * list a |
adamc@255 | 14 |
adamc@255 | 15 val r1 : transaction (list {A : int, B : string, C : float}) = |
adamc@264 | 16 query q7 |
adamc@255 | 17 (fn fs acc => return (Cons (fs.T1, acc))) |
adamc@255 | 18 Nil |
adamc@255 | 19 |
adamc@255 | 20 val r2 : transaction string = |
adamc@255 | 21 ls <- r1; |
adamc@255 | 22 return (case ls of |
adamc@255 | 23 Nil => "Problem" |
adamc@255 | 24 | Cons ({B = b, ...}, _) => b) |
adamc@255 | 25 |
adamc@255 | 26 val main : unit -> transaction page = fn () => |
adamc@255 | 27 s <- r2; |
adamc@255 | 28 return <html><body> |
adamc@255 | 29 {cdata s} |
adamc@255 | 30 </body></html> |