Design Patterns for Functional Strategic Programming
<|reference_start|>Design Patterns for Functional Strategic Programming: In previous work, we introduced the fundamentals and a supporting combinator library for \emph{strategic programming}. This an idiom for generic programming based on the notion of a \emph{functional strategy}: a first-class generic function that cannot only be applied to terms of any type, but which also allows generic traversal into subterms and can be customized with type-specific behaviour.   This paper seeks to provide practicing functional programmers with pragmatic guidance in crafting their own strategic programs. We present the fundamentals and the support from a user's perspective, and we initiate a catalogue of \emph{strategy design patterns}. These design patterns aim at consolidating strategic programming expertise in accessible form.<|reference_end|>
@article{laemmel2002design,
    title={Design Patterns for Functional Strategic Programming},
    author={Ralf Laemmel and Joost Visser},
    journal={arXiv preprint arXiv:cs/0204015},
    year={2002},
    archivePrefix={arXiv},
    eprint={cs/0204015},
    primaryClass={cs.PL}
}