El 18/06/15 a les 20:12, Sergey Mironov ha escrit:
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 <[email protected]>:
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>


I am not following the antiquotations model exactly (http://www.smlnj.org/doc/quote.html).

Instead of antiquote variables, a place-holder for argument pattern can give the user the freedom to specify the pattern they want.

$foldmap {items_expr} <| {item_pattern}

    item_subtree {item_variable}


_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to