Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Update analysis and the efficient implementation of functional aggregates
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
How to make destructive updates less destructive
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A transformation-based optimiser for Haskell
Science of Computer Programming - Special issue on the 6th European symposium on programming
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Data parallel Haskell: a status report
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Call-pattern specialisation for Haskell programs
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Short cut fusion: proved and improved
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Sneaking around concatMap: efficient combinators for dynamic programming
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Challenges for a trace-based just-in-time compiler for haskell
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Automatic SIMD vectorization for Haskell
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Splittable pseudorandom number generators using cryptographic hashing
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hi-index | 0.00 |
Purely functional arrays are notoriously difficult to implement and use efficiently due to the absence of destructive updates and the resultant frequent copying. Deforestation frameworks such as stream fusion achieve signficant improvements here but fail for a number of important operations which can nevertheless benefit from elimination of temporaries. To mitigate this problem, we extend stream fusion with support for in-place execution of array operations. This optimisation, which we call recycling , is easy to implement and can significantly reduce array allocation and copying in purely functional array algorithms.