On Sat, 2008-03-22 at 16:08 +0000, Paul Johnson wrote: > Dean Herington wrote: > > At 6:41 PM -0700 3/21/08, Adam Langley wrote: > >> > >> Also > >>> getter <- fmap (amqpGetTable !) getWord8 > >>> getter > >> > >> is just > >> > >> > fmap (amqpGetTable !) getWord8 > > > > I don't think so. Aren't there two "gettings": the first to get the > > "type" byte and the second to get the item? > > > Yes. I didn't use it because it seemed obfuscated, but in fact the > point-free version is > > > fmap (amqpGetTable !) getWord8 >>= id > Nah, the point-free version wouldn't be this. First, join = x >>= id so fmap (ampqGetTable !) getWord8 >>= id === join (fmap (ampqGetTable !) getWord8) Next, m >>= f = join (fmap f m) so join (fmap (ampqGetTable !) getWord8) === getWord8 >>= (ampqGetTable !) This would be the point-free version
So the original code was a round-about way of saying: do word <- getWord8; ampqGetTable ! word _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
