Mercurial > urweb
view tests/gform.lac @ 148:15e8b9775539
gform in proper order
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 22 Jul 2008 19:12:25 -0400 |
parents | eb16f2aadbe9 |
children | cc0bc756f66f |
line wrap: on
line source
con stringify = fold (fn nm :: Name => fn u :: Unit => fn t :: {Type} => [nm = string] ++ t) [] signature S = sig con rs :: {Unit} end signature S' = sig con rs :: {Unit} val handler : $(stringify rs) -> page val page : unit -> page end functor F (M : S) : S' where con rs = M.rs = struct con rs = M.rs val handler = fn x : $(stringify M.rs) => <html><body> OK. </body></html> val page = fn () => <html><body> <lform> {fold [fn rs :: {Unit} => xml lform [] (stringify rs)] (fn nm :: Name => fn u :: Unit => fn rest :: {Unit} => fn frag : xml lform [] (stringify rest) => <lform><li> <textbox{nm}/></li> {useMore frag}</lform>) <lform></lform> [rs]} <submit action={handler}/> </lform> </body></html> end structure M = F(struct con rs = [A, B, C] end) open M