Judah Jacobson wrote: > 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.
I think this is a pretty nice idea. (Disclaimer: I haven't spent any time on checking corner cases; also I firmly belong to the anti-further-overloading- of-dot faction). In any case it is light-weight enough to be actually useful, it is readable and suggestive, and (at least conceptually) fits well in the existing record syntax. This deserves a fully fleshed-out proposal for Haskell' IMO. Cheers -- Ben Franksen () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachm€nts _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users