[m-rev.] for review: Added cord.condense/2

Julien Fischer jfischer at opturion.com
Mon Jul 1 23:29:37 AEST 2013


On Mon, Jul 1, 2013 at 10:07 PM, Paul Bone <paul at bone.id.au> wrote:

>
> > ( Aside: it did occur to me that the following extension to state
> variable
> > notation might
> > be nice for function applications:
> >
> >     !A = foo
> >
> >     ===> !:A = foo(!.A)
> >
> > or more generally:
> >
> >     !A = foo(B1, B2, ..., BN)
> >
> >     ===> !:A = foo(B1, B2, ..., BN, !.A)
> >
> > ).
>
> I've seen several proposals for this, this is the nicest so far.  And
> simple
> too.
>
> It could be generalised further by somehow matching the missing parameter
> not by position but by type (where doing so is unambigious).  However, I
> think this turns something simple into something that's more complicated
> than it needs to be (and therefore harder to use).
>
>     !A = foo(B1, B2)
>
>     ===> !:A = foo(!.A, B1, B2)


Having the state variable transformation also depend upon argument types
would be ugly.  (And probably fairly difficult to implement.)  It's also not
consisten with the predicate version which is purely positional.

Cheers,
Julien.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20130701/d382e59c/attachment.html>


More information about the reviews mailing list