Why functional programming matters
The Computer Journal - Special issue on Lazy functional programming
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Data structures and program transformation
Science of Computer Programming
Exact Real Computer Arithmetic with Continued Fractions
IEEE Transactions on Computers
An introduction to functional programming
An introduction to functional programming
Research topics in functional programming
Research topics in functional programming
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Arithmetic coding for data compression
Communications of the ACM
Algebra of programming
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Generic downwards accumulations
Science of Computer Programming - Special issue on mathematics of program construction
Introduction to Functional Programming
Introduction to Functional Programming
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Mongruences and Cofree Coalgebras
AMAST '95 Proceedings of the 4th International Conference on Algebraic Methodology and Software Technology
Calculating Functional Programs
Revised Lectures from the International Summer School and Workshop on Algebraic and Coalgebraic Methods in the Mathematics of Program Construction
Proceedings of the IFIP TC2/WG 2.1 State-of-the-Art Report on Formal Program Development
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Vuillemin's Exact Real Arithmetic
Proceedings of the 1991 Glasgow Workshop on Functional Programming
Polytypic Downwards Accumulations
MPC '98 Proceedings of the Mathematics of Program Construction
A Typed Lambda Calculus with Categorical Type Constructors
Category Theory and Computer Science
ARITH '01 Proceedings of the 15th IEEE Symposium on Computer Arithmetic
Algebras for tree algorithms
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Principles of Program Design
Proof Methods for Corecursive Programs
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 1
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Comparing approaches to generic programming in Haskell
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Coinductive correctness of homographic and quadratic algorithms for exact real numbers
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Sorting with bialgebras and distributive laws
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Hi-index | 0.00 |
Unfolds generate data structures, and folds consume them. A hylomorphism is a fold after an unfold, generating then consuming a virtual data structure. A metamorphism is the opposite composition, an unfold after a fold; typically, it will convert from one data representation to another. In general, metamorphisms are less interesting than hylomorphisms: there is no automatic fusion to deforest the intermediate virtual data structure. However, under certain conditions fusion is possible: some of the work of the unfold can be done before all of the work of the fold is complete. This permits streaming metamorphisms, and among other things allows conversion of infinite data representations. We present a theory of metamorphisms and outline some examples.