LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Data structures and program transformation
Science of Computer Programming
An introduction to functional programming
An introduction to functional programming
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
FPCA '95 Proceedings of the seventh international 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
Warm fusion: deriving build-catas from recursive definitions
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
PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fold and unfold for program semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Communications of the ACM
Introduction to Functional Programming
Introduction to Functional Programming
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Three Approaches to Type Structure
CAAP '85 Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT), Volume 1: Colloquium on Trees in Algebra and Programming: Mathematical Foundations of Software Development
Reactive functional programming
PROCOMET '98 Proceedings of the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods
Merging Monads and Folds for Functional Programming
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
MPC '98 Proceedings of the Mathematics of Program Construction
Applicative style programming, program transformation, and list operators
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Journal of Functional Programming
A programming language
A Better XML Parser through Functional Programming
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Cycle therapy: a prescription for fold and unfold on regular trees
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
The expressive power of higher-order types or, life without CONS
Journal of Functional Programming
THEORETICAL PEARL Church numerals, twice!
Journal of Functional Programming
Design patterns as higher-order datatype-generic programs
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Generic program monitoring by trace analysis
Theory and Practice of Logic Programming
Google's MapReduce programming model — Revisited
Science of Computer Programming
Google's MapReduce programming model – Revisited
Science of Computer Programming
The worker/wrapper transformation
Journal of Functional Programming
Isomorphisms, hylomorphisms and hereditarily finite data types in Haskell
Proceedings of the 2009 ACM symposium on Applied Computing
I/O guided detection of list catamorphisms: towards problem specific use of program templates in IP
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Factorising folds for faster functions
Journal of Functional Programming
Semantically Restricted Argument Dependencies
Journal of Logic, Language and Information
Typed contracts for functional programming
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Proof pearl: defining functions over finite sets
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
Typing a core binary-field arithmetic in a light logic
FOPARA'11 Proceedings of the Second international conference on Foundational and Practical Aspects of Resource Analysis
Sorting with bialgebras and distributive laws
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Higher-Order and Symbolic Computation
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Reduction as a transition controller for sound synthesis events
Proceedings of the first ACM SIGPLAN workshop on Functional art, music, modeling & design
Hi-index | 0.00 |
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursion for processing lists. This article is a tutorial on two key aspects of the fold operator for lists. First of all, we emphasize the use of the universal property of fold both as a proof principle that avoids the need for inductive proofs, and as a definition principle that guides the transformation of recursive functions into definitions using fold. Secondly, we show that even though the pattern of recursion encapsulated by fold is simple, in a language with tuples and functions as first-class values the fold operator has greater expressive power than might first be expected.