
#9623: Use Data.List.dropWhileEnd -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: Type: task | Status: new Priority: normal | Milestone: 7.10.1 Component: libraries | Version: 7.8.3 (other) | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Easy (less than 1 Unknown/Multiple | hour) Type of failure: | Blocked By: None/Unknown | Related Tickets: Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by refold): Replying to [comment:10 dfeuer]:
It seems to be faster in the common case of trimming spaces from fairly short strings. It would be pretty bad for cutting a little bit off the end of a lazily-read file.
Hmm, I see now. That's because {{{ dropWhileEnd isSpace ("foo\n" ++ undefined) == "foo" ++ undefined }}} but {{{ dropWhileEndLE isSpace ("foo\n" ++ undefined) == undefined }}} so the `LE` version would need to read the whole file in memory. IMO the `LE` version is more practical since you usually do stuff like `return . map (dropWhileEnd isSpace) . lines =<< readFile "foo"` instead of just dropping the end of the file. For reference: the original discussion on the libraries list is [http://www.haskell.org/pipermail/libraries/2011-September/016829.html here]. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9623#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler