
#7977: Optimization: Shift dropped list heads by coeffecient to prevent thunk generation ---------------------------------+------------------------------------------ Reporter: schyler | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.4.2 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by schyler): For any list produced with ranges or comprehensions using ranges, it's possible to determine the number of heads dropped. As such, it is thereby possible to perform a transformation on this list such that the operation is performed in constant time (as opposed to the current linear time). The following Prelude functions (all containing _:xs match cases) would benefit:[[BR]] - tail[[BR]] - last[[BR]] - length[[BR]] - drop[[BR]] - (!!)[[BR]] [[BR]] The work required in heavy high-level analysis of _:xs may outweigh just writing specific rules for these transformations. One such high-level transformation is outlined in the list comprehension example in the ticket. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7977#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler