FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
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
Bananas in space: extending fold and unfold to exponential types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space)
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algebra of programming
Functional programming with graphs
ICFP '97 Proceedings of the second 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
Categorical Programming with Abstract Data Types
AMAST '98 Proceedings of the 7th International Conference on Algebraic Methodology and Software Technology
Random Access to Abstract Data Types
AMAST '00 Proceedings of the 8th International Conference on Algebraic Methodology and Software Technology
WG '92 Proceedings of the 18th International Workshop on Graph-Theoretic Concepts in Computer Science
Homomorphisms and Promotability
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
An Initial-Algebra Approach to Directed Acyclic Graphs
MPC '95 Mathematics of Program Construction
Random Access to Abstract Data Types
AMAST '00 Proceedings of the 8th International Conference on Algebraic Methodology and Software Technology
Hi-index | 0.00 |
We show how to define recursion operators for random access data types, that is, ADTs that offer random access to their elements, and how algorithms on arrays and on graphs can be expressed by these operators. The approach is essentially based on a representation of ADTs as bialgebras that allows catamorphisms between ADTs to be defined by composing one ADT's algebra with the other ADT's coalgebra. The extension to indexed data types enables the development of specific recursion schemes, which are, in particular, suited to express a large class of graph algorithms.