If you use lenses you can do this today with no real need to adulterate the parser.
setL (l2 . l1) x rec This goes one step further as it can be written point free so you don't even have to give rec a name if you don't want to. ;) -Edward On Mon, Sep 19, 2011 at 9:09 AM, Barney Hilken <[email protected]>wrote: > All this talk about records got me thinking. I don't really like the > current syntax for record update (because it looks too much like function > application) but here is an extension to it which might be useful. > > If you use nested records, many languages allow you to update the inner > records directly, for example rect.bottomLeft.xCoord += 3. We could allow a > similar thing in Haskell by extending the syntax like this: > > fbind -> qvar = exp > | qvar { fbind1 , ... , fbindn } > > then > > rec { l1 { l2 = x }} > > would mean > > rec { l1 = (l1 rec) { l2 = x }} > > The advantage (apart from convenience) is that we don't have to repeat rec, > which could be a complex expression. > > Is this any use? > > Barney. > > > _______________________________________________ > Glasgow-haskell-users mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users >
_______________________________________________ Glasgow-haskell-users mailing list [email protected] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
