Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
A novel representation of lists and its application to the function "reverse"
Information Processing Letters
A functional theory of exceptions
Science of Computer Programming
Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
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
Warm fusion: deriving build-catas from recursive definitions
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Improvement theory and its applications
Higher order operational techniques in semantics
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Introduction to Functional Programming
Introduction to Functional Programming
Comparing Control Constructs by Double-Barrelled CPS
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
Elementary Strong Functional Programming
FPLE '95 Proceedings of the First International Symposium on Functional Programming Languages in Education
Type-Inference Based Short Cut Deforestation (Nearly) without Inlining
IFL '99 Selected Papers from the 11th International Workshop on Implementation of Functional Languages
Categorical Fixed Point Calculus
CTCS '95 Proceedings of the 6th International Conference on Category Theory and Computer Science
Galois connections and fixed point calculus
Algebraic and coalgebraic methods in the mathematics of program construction
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A tutorial on the universality and expressiveness of fold
Journal of Functional Programming
Introducing the Haskell equational reasoning assistant
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Programming in Haskell
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
What is the meaning of these constant interruptions?
Journal of Functional Programming
Applicative programming with effects
Journal of Functional Programming
Functional pearl: streams and unique fixed points
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Representations of first order function types as terminal coalgebras
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
A Haskell Hosted DSL for Writing Transformation Systems
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Factorising folds for faster functions
Journal of Functional Programming
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
ChalkBoard: mapping functions to polygons
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Concrete stream calculus: An extended study
Journal of Functional Programming
A library writer's guide to shortcut fusion
Proceedings of the 4th ACM symposium on Haskell
Deriving an efficient FPGA implementation of a low density parity check forward error corrector
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Fibrational induction meets effects
FOSSACS'12 Proceedings of the 15th international conference on Foundations of Software Science and Computational Structures
Explicit binds: effortless efficiency with and without trees
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
The HERMIT in the machine: a plugin for the interactive transformation of GHC core language programs
Proceedings of the 2012 Haskell Symposium
Causality of optimized Haskell: what is burning our cycles?
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Type-changing rewriting and semantics-preserving transformation
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
The worker/wrapper transformation is a technique for changing the type of a computation, usually with the aim of improving its performance. It has been used by compiler writers for many years, but the technique is little known in the wider functional programming community, and has never been described precisely. In this article we explain, formalise and explore the generality of the worker/wrapper transformation. We also provide a systematic recipe for its use as an equational reasoning technique for improving the performance of programs, and illustrate the power of this recipe using a range of examples.