annotate demo/metaform.ur @ 800:e92cfac1608f

Proper lifting of MonoEnv stored expressions; avoidance of onchange clobbering
author Adam Chlipala <adamc@hcoop.net>
date Thu, 14 May 2009 13:18:31 -0400
parents aa2290c32ce2
children 669ac5e9a69e
rev   line source
adamc@418 1 functor Make (M : sig
adamc@418 2 con fs :: {Unit}
adamc@632 3 val fl : folder fs
adamc@643 4 val names : $(mapU string fs)
adamc@418 5 end) = struct
adamc@418 6
adamc@418 7 fun handler values = return <xml><body>
adamc@418 8 {foldURX2 [string] [string] [body]
adamc@418 9 (fn (nm :: Name) (rest :: {Unit}) [[nm] ~ rest] name value => <xml>
adamc@418 10 <li> {[name]} = {[value]}</li>
adamc@418 11 </xml>)
adamc@632 12 [M.fs] M.fl M.names values}
adamc@418 13 </body></xml>
adamc@418 14
adamc@418 15 fun main () = return <xml><body>
adamc@418 16 <form>
adamc@643 17 {foldUR [string] [fn cols :: {Unit} => xml form [] (mapU string cols)]
adamc@418 18 (fn (nm :: Name) (rest :: {Unit}) [[nm] ~ rest] name
adamc@643 19 (acc : xml form [] (mapU string rest)) => <xml>
adamc@418 20 <li> {[name]}: <textbox{nm}/></li>
adamc@418 21 {useMore acc}
adamc@418 22 </xml>)
adamc@418 23 <xml/>
adamc@632 24 [M.fs] M.fl M.names}
adamc@418 25 <submit action={handler}/>
adamc@418 26 </form>
adamc@418 27 </body></xml>
adamc@418 28
adamc@418 29 end