Formal transformations somehow resembling the usual derivative are surprisingly common in computer science, with two notable examples being derivatives of regular expressions [1] and derivatives of types [2, 3]. A newcomer to this list is the incremental λ-calculus, or ILC, a “theory of changes” that deploys a formal apparatus allowing the automatic generation of efficient update functions which perform incremental computation [4]. An example of this would be using the ILC derivative-like operator D to alter a function f : B → B, which performs some major reorganization on a database (of type B), into the update function D f : B → ∆B → ∆B. Here ∆B is the type of changes to B. So D f , given an initial database, maps a change to that input database to a change to the output database. This in principle, and as shown in their work also in practice, allows enormous savings when the change to the input is small compared to the size of the input itself. Resemblance to the standard derivative can be exhibited by a simple example
[1]
Klaus Ostermann,et al.
A theory of changes for higher-order languages: incrementalizing λ-calculi by static differentiation
,
2013,
PLDI.
[2]
Oleksandr Manzyuk.
A Simply Typed λ-Calculus of Forward Automatic Differentiation
,
2012,
MFPS.
[3]
Barak A. Pearlmutter,et al.
Nesting forward-mode AD in a functional framework
,
2008,
High. Order Symb. Comput..
[4]
Thorsten Altenkirch,et al.
for Data: Differentiating Data Structures
,
2005,
Fundam. Informaticae.
[5]
Laurent Regnier,et al.
The differential lambda-calculus
,
2003,
Theor. Comput. Sci..
[6]
Conor McBride.
The Derivative of a Regular Type is its Type of One-Hole Contexts
,
2001
.
[7]
Janusz A. Brzozowski,et al.
Derivatives of Regular Expressions
,
1964,
JACM.
[8]
Clifford,et al.
Preliminary Sketch of Biquaternions
,
1871
.