Combining Memoisation and Change Propagation for Automatic Incremental Evaluation of Haskell Arrow Programs
Files
Publication date
Authors
DOI
Document Type
Master Thesis
Metadata
Show full item recordLicense
CC-BY-NC-ND
Abstract
Implementing re-use of previously computed values is hard and is therefore
often dismissed by programmers: a missed opportunity for improved
computational efficiency. Memoisation and change propagation are techniques
for implementing the re-use of previously computed values. Using existing
libraries either destroys the conciseness of the code or is too limited for a
real-world application where fine-grained control over the amount of memory
used is necessary. We combine both memoisation and change propagation and
provide clean interfaces through the ubiquitous applicative, monad, and arrow
interfaces.
Keywords
memoisation, change propagation, incremental evaluation, Haskell, functional programming