jinjing <[EMAIL PROTECTED]> writes: > Any way here's the code:
> module Dot where > import Prelude hiding ( (.) ) > (.) :: a -> (a -> b) -> b > a . f = f a > infixl 9 . Isn't this (roughly?) the same as flip ($)? As a side note, may I advise you to use another symbol, and leave the poor dot alone? Overloading it as a module separator is bad enough. If you have a keyboard that allows greater-than-ascii input, there are plenty of options: « » ¡ £ ¥ ł € ® ª... > comparing: > encode xs = map (\x -> (length x,head x)) (group xs) > encode xs = xs.group.map token where token x = (x.length, x.head) To be fair, you could write the first line as: encode xs = map token (group xs) where token x = (length x, head x) I'm not normally too enthusiastic about point-free style, but when the left and right side of the = both end with the same term, there's really no need to name them, so: encode = map token . group where token x = (length x, head x) -- using function composition (.), not your definition I'm not sure that would work with left-to-right composition. > I found starting with data and working my way to a solution seems to be > easier to think with, or maybe it's just me ... For monadic code, there "default" is >>= and >> which pass things forward. There's also =<< which goes the other way - so I guess opinions differ. -k -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe