[Ur] Hamlet like XML, structured by indentation with tag autoclosing
Sergey Mironov
grrwlf at gmail.com
Thu Jun 18 14:12:12 EDT 2015
Off-topic: The interesting thing to think about is a _monadic_
anti-quotations. For example, imagine the code
return <xml><div>{| queryX(SELECT * FROM t) (fn x=> return
<xml>{[x.A]}</xml>) |}</div></xml>
desugaring into the
tmp <- queryX(SELECT * FROM t) (fn x=> return <xml>{[x.A]}</xml>);
return <xml><div>{tmp}</div></xml>
Here we see clean task handled by the optimizer: selecting the name of
temporary variable ([tmp] in this case) for us.
Regards,
Sergey
2015-06-18 19:29 GMT+03:00 Adam Chlipala <adamc at csail.mit.edu>:
> On 06/18/2015 12:09 PM, Gabriel Riba wrote:
>>
>> (* --- with hamlet like style --- *)
>>
>> fun mymodule items = <ixml>
>>
>> <h3> title
>> <div>
>> $if {null items}
>> <p> Sorry, no items left
>> $else
>> <ul>
>> $forall {item} <- {items}
>> <li> <b>{[item]}</b>
>> </ixml>
>
>
> The special syntax for 'forall' bothers me a bit. I prefer to see standard
> function-call syntax there. There are other iteration styles that are often
> useful but that won't fit with the 'forall' syntax. One example is a
> fold-style traversal maintaining some other accumulator.
>
> P.S.: Sorry for the duplicate post here earlier, where I gave idiomatic
> Ur/Web code for this task very similar to what Ziv had already posted. I
> wasn't paying enough attention, looking at later unread messages before
> replying.
>
>
> _______________________________________________
> Ur mailing list
> Ur at impredicative.com
> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
More information about the Ur
mailing list