Jonathan Cast wrote: > reverseDouble = > unlines > . intro > . map show > . reverse > . map (read :: String -> Double) > . takeWhile (/= "end") > . words > where > intro l = > ("read " ++ show (length l) ++ " elements") : > "elements in reversed order" : > l
This can be simplified to ... . map show . reverse . map read . ... = { map f . reverse = reverse . map f } ... . reverse . map show . map read . ... = { map f . map g = map (f . g) } ... . reverse . map (show . read) . ... = { show . read = id } ... . reverse . map id . ... = { map id = id } ... . reverse . ... In other words, reverseDouble = unlines. intro . reverse . takeWhile (/= "end") . words where intro xs = ("read " ++ show (length xs) ++ " elements") : "elements in reversed order" : xs And the doubles disappeared completely. :) Regards, H. Apfelmus _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe