In trawling through the documentation I've found the functions FoldPairList and SequenceFoldList. Examples are given of how to use FoldPairList:
- Partition a list into sublists of different lengths using TakeDrop
- Break an amount of money into bills of given values using QuotientRemainder
- A discrete-time state-space system is represented using a state equation and output equation. (see wikipedia)
and for SequenceFoldList (both using Plus):
- an implementation of the Fibonacci sequence
- Show convergence to the exact solution when increasing the order of extrapolation.
These examples show some utility of these functions, but ultimately are not illuminating.
I'm looking for intuition behind these potentially useful functions.
It should be possible to view these functions through the paradigm of functional program (or Category Theory). In particular:
- Are these functions particular types of Catamorphism?
- Are these functions related to Tree-Like Folds?
I'm no expert in any of this stuff. My guess is that these functions are included in Mathematica more as utility functions used internally for implementing other functions.