Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Safe fusion of functional expressions
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
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
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Proving correctness via free theorems: the case of the destroy/build-rule
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Recursive coalgebras from comonads
Information and Computation - Special issue: Seventh workshop on coalgebraic methods in computer science 2004
Initial algebra semantics is enough!
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Gradual refinement: blending pattern matching with data abstraction
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
A library writer's guide to shortcut fusion
Proceedings of the 4th ACM symposium on Haskell
Sorting with bialgebras and distributive laws
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Histo- and dynamorphisms revisited
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
The HERMIT in the stream: fusing stream fusion's concatMap
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
There are a number of approaches for eliminating intermediate data structures in functional programs--this elimination is commonly known as fusion. Existing fusion strategies are built upon various, but related, recursion schemes, such as folds and unfolds. We use the concept of recursive coalgebras as a unifying theoretical and notational framework to explore the foundations of these fusion techniques. We first introduce the calculational properties of recursive coalgebras and demonstrate their use with proofs and derivations in a calculational style, then provide an overview of fusion techniques by bringing them together in this setting. We also showcase these developments with examples in Haskell.