<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 1, 2013 at 10:07 PM, Paul Bone <span dir="ltr"><<a href="mailto:paul@bone.id.au" target="_blank">paul@bone.id.au</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br></div><div class="im">
> ( Aside: it did occur to me that the following extension to state variable<br>
> notation might<br>
> be nice for function applications:<br>
><br>
>     !A = foo<br>
><br>
>     ===> !:A = foo(!.A)<br>
><br>
> or more generally:<br>
><br>
>     !A = foo(B1, B2, ..., BN)<br>
><br>
>     ===> !:A = foo(B1, B2, ..., BN, !.A)<br>
><br>
> ).<br>
<br>
</div>I've seen several proposals for this, this is the nicest so far.  And simple<br>
too.<br>
<br>
It could be generalised further by somehow matching the missing parameter<br>
not by position but by type (where doing so is unambigious).  However, I<br>
think this turns something simple into something that's more complicated<br>
than it needs to be (and therefore harder to use).<br>
<br>
    !A = foo(B1, B2)<br>
<br>
    ===> !:A = foo(!.A, B1, B2)</blockquote><div><br></div><div>Having the state variable transformation also depend upon argument types</div><div>would be ugly.  (And probably fairly difficult to implement.)  It's also not</div>
<div>consisten with the predicate version which is purely positional.</div><div><br></div><div>Cheers,</div><div>Julien.</div><div><br></div><div> </div></div><br></div></div>