A possible alternative to dot notation for record access
Roman Cheplyaka
roma at ro-che.info
Sun Jun 30 11:09:54 CEST 2013
* Carter Schonwald <carter.schonwald at gmail.com> [2013-06-30 03:26:22-0400]
> Otoh, would there be any ambiguity wrt applying functions to blocks?
>
> eg
> f = (+ 1)
> h= f {let x = 7 in 3*x},
> would that trip up the syntax?
This is not valid Haskell anyway (there's no such thing as "applying
functions to blocks"). You can write
h = f (let {x = 7} in 3*x)
or
h = f $ let {x = 7} in 3*x
Roman
> On Sun, Jun 30, 2013 at 2:59 AM, Judah Jacobson <judah.jacobson at gmail.com>wrote:
>
> > Hi all,
> >
> > I had a quick idea about record field syntax as specified in the GSoC
> > project plan:
> > http://hackage.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/Plan
> > .
> >
> > Instead of "f.x" (to access field x of record f), maybe we could write
> > "f{x}" as the record selection. That is, we'd reuse the brace notation
> > which is already in place for record updates. Unlike dot notation, this is
> > unambiguous and doesn't conflict with any existing syntax (AFAIK). It
> > would also generalize to "f{x}{y}{z}" instead of "f.x.y.z".
> >
> > This proposal would add two new forms of expressions:
> >
> > f{x} to access field x of data f
> > ({x}) = \f -> f{x} as a field access section
> >
> > Additionally, it seems like record mutation expressions could also have
> > sections:
> >
> > ({x=2}) = \f -> f{x=2}
> >
> > That actually seems useful by itself, regardless of whether we use dot
> > notation for field access.
> >
> > Best,
> > -Judah
> >
> > _______________________________________________
> > Glasgow-haskell-users mailing list
> > Glasgow-haskell-users at haskell.org
> > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
> >
> >
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
More information about the Glasgow-haskell-users
mailing list