A possible alternative to dot notation for record access

Judah Jacobson judah.jacobson at gmail.com
Sun Jun 30 08:59:53 CEST 2013


 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20130629/8eba23c1/attachment.htm>


More information about the Glasgow-haskell-users mailing list