Mercurial > urweb
annotate tests/treeDyn.ur @ 1675:13dad713da35
New, more principled heuristic for Especialize: only specialize uniform function arguments; that is, arguments that don't change across recursive calls
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Wed, 11 Jan 2012 13:53:35 -0500 |
parents | aa2398e58306 |
children |
rev | line source |
---|---|
adam@1457 | 1 table t : {Id : int, Parent : option int} |
adam@1457 | 2 |
adam@1457 | 3 fun recurse (root : option int) = |
adam@1457 | 4 queryX' (SELECT * FROM t WHERE {eqNullable' (SQL t.Parent) root}) |
adam@1457 | 5 (fn r => |
adam@1457 | 6 children <- recurse (Some r.T.Id); |
adam@1457 | 7 (*s <- source False;*) |
adam@1457 | 8 return <xml> |
adam@1457 | 9 <dyn signal={(*v <- signal s; |
adam@1457 | 10 if v then*) |
adam@1457 | 11 return <xml><b>HI</b>{children}<b>BYE</b></xml> |
adam@1457 | 12 (*else |
adam@1457 | 13 return <xml/>*)}/> |
adam@1457 | 14 </xml>) |
adam@1457 | 15 |
adam@1457 | 16 fun main () = |
adam@1457 | 17 x <- recurse None; |
adam@1457 | 18 return <xml><body>{x}</body></xml> |