annotate tests/query.ur @ 623:588b9d16b00a
Start of kind polymorphism, up to the point where demo/hello elaborates with updated Basis/Top
author |
Adam Chlipala <adamc@hcoop.net> |
date |
Sun, 22 Feb 2009 16:10:25 -0500 |
parents |
f8d9395575ec |
children |
5f9b9972e6b8 |
rev |
line source |
adamc@253
|
1 table t1 : {A : int, B : string, C : float, D : bool}
|
adamc@243
|
2 table t2 : {A : float, D : int}
|
adamc@243
|
3
|
adamc@243
|
4 datatype list a = Nil | Cons of a * list a
|
adamc@243
|
5
|
adamc@254
|
6 val q1 = (SELECT * FROM t1)
|
adamc@253
|
7
|
adamc@253
|
8 val r1 : transaction (list {A : int, B : string, C : float, D : bool}) =
|
adamc@243
|
9 query q1
|
adamc@251
|
10 (fn fs acc => return (Cons (fs.T1, acc)))
|
adamc@243
|
11 Nil
|
adamc@243
|
12
|
adamc@249
|
13 val r2 : transaction string =
|
adamc@243
|
14 ls <- r1;
|
adamc@243
|
15 return (case ls of
|
adamc@249
|
16 Nil => "Problem"
|
adamc@249
|
17 | Cons ({B = b, ...}, _) => b)
|
adamc@249
|
18
|
adamc@249
|
19 val main : unit -> transaction page = fn () =>
|
adamc@249
|
20 s <- r2;
|
adamc@249
|
21 return <html><body>
|
adamc@249
|
22 {cdata s}
|
adamc@249
|
23 </body></html>
|