Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Algebra of programming
Tupling calculation eliminates multiple data traversals
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
A calculational fusion system HYLO
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Fusion of recursive programs with computational effects
Theoretical Computer Science
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Warm fusion in Stratego: A case study in generation of program transformation systems
Annals of Mathematics and Artificial Intelligence
Introduction to Functional Programming
Introduction to Functional Programming
Calculating functional programs
Algebraic and coalgebraic methods in the mathematics of program construction
Free theorems in the presence of seq
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Combining datatypes and effects
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Program fusion with paramorphisms
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
Hi-index | 0.00 |
We reformulate algorithms for optimizing functional programs through a well known fusion technique. The reformulation sheds a new perspective which simplifies significantly the extensions to cope with programs involving mutually recursive definitions and recursion over multiple arguments. The presentation is based on a recursion scheme known as hylomorphism but other related fusion techniques may benefit from the results. Our algorithms are implemented as part of a fusion tool called HFusion.