7 Jan
2001
7 Jan
'01
7:08 p.m.
Sebastien Carlier wrote:
Sometimes I need to write code which looks like this:
do x <- m1 let y = unzip x ... -- never using x anymore
I thinks the following extension to do-notation would be useful:
pat <- exp1 # exp2 ; exp3 would be rewritten as exp2 >>= ((\pat -> exp3) . exp1)
so that the above example could be rewritten more compactly:
do y <- unzip # m1
This can be done in Haskell without any changes to the 'do' notation at all: just define | f # m = m >>= (return . f) and add an appropriate fixity declaration for '#'. --Joe English jenglish@flightlab.com