Notions of computation and monads
Information and Computation
Comprehensions, a query notation for DBPLs
DBPL3 Proceedings of the third international workshop on Database programming languages : bulk types & persistent data: bulk types & persistent data
Predicate transformer semantics
Predicate transformer semantics
Iteration theories: the equational logic of iterative processes
Iteration theories: the equational logic of iterative processes
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Building interpreters by composing monads
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principles of programming with complex objects and collection types
ICDT '92 Selected papers of the fourth international conference on Database theory
ESOP '94 Selected papers of ESOP '94, the 5th European symposium on Programming
Automata, Languages, and Machines
Automata, Languages, and Machines
Uncertainty Models for Knowledge-Based Systems; A Unified Approach to the Measurement of Uncertainty
Uncertainty Models for Knowledge-Based Systems; A Unified Approach to the Measurement of Uncertainty
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
A Semantics For Evaluation Logic
Fundamenta Informaticae
Theoretical Computer Science
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Journal of Functional Programming
Boolean restriction categories and taut monads
Theoretical Computer Science
Taut Monads, Dynamic Logic and Determinism
Electronic Notes in Theoretical Computer Science (ENTCS)
Boolean and classical restriction categories
Mathematical Structures in Computer Science
Monad transformers as monoid transformers
Theoretical Computer Science
From T-coalgebras to filter structures and transition systems
CALCO'05 Proceedings of the First international conference on Algebra and Coalgebra in Computer Science
Hi-index | 0.00 |
In object-oriented programming, there are many notions of ‘collection with members in X’. This paper offers an axiomatic theory of collections based on monads in the category of sets and total functions. Heuristically, the axioms defining a collection monad state that each collection has a finite set of members of X, that pure 1-element collections exist and that a collection of collections flattens to a single collection whose members are the union of the members of the constituent collections. The relationship between monads and universal algebra leads to a formal definition of collection implementation in terms of tree-processing. Ideas from elementary category theory underly the classification of collections. For example, collections can be zipped if and only if the monad's endofunctor preserves pullbacks. Or, a collection can be uniquely specified by its shape and list of data if the morphisms of the Kleisli category of the monad are all deterministic, and the converse holds for commutative monads. Again, a collection monad is ordered if the monad's functor preserves equalizers of monomorphisms (so, in particular, if collections can be zipped the monad is ordered). Every implementable monad is ordered. It is shown using the well-ordering principle that a collection monad is ordered if and only if its functor admits an appropriated list-valued natural transformation that lists the members of each collection.