[Haskell-cafe] re-definition of '.'

Bulat Ziganshin bulatz at HotPOP.com
Sat Nov 19 14:33:33 EST 2005

Hello haskell-cafe,

if we will define "." as:

a.b = b a

then we can use "." for

1) field selection

2) sequential functions application in OOP style:

[1..100] .map (2*) .sum

3) qualified identifiers - if we treat module name as the record
containing all its exported functions:

"import M (f,g,h)" defines record M with fields f, g and h

The only problem is priority of this operation - for field selection
it need to be greater than for application:

infixl 11 .

while for OOP-styled operations with arguments - its priority must be
minimal. one possible solution is rather revolitionary: raise priority
of "." if there is no spaces around it, so the following will be
interpreted precisely as we want:

record.field .List.map (2*) .sum

Best regards,
 Bulat                          mailto:bulatz at HotPOP.com

More information about the Haskell-Cafe mailing list