Bottom-up computation using trees of sublists

SHIN-CHENG MU
DOI: https://doi.org/10.1017/s0956796824000145
2024-12-13
Journal of Functional Programming
Abstract:Some top-down problem specifications, if executed, may compute sub-problems repeatedly. Instead, we may want a bottom-up algorithm that stores solutions of sub-problems in a table to be reused. How the table can be represented and efficiently maintained, however, can be tricky. We study a special case: computing a function taking lists as inputs such that is defined in terms of all immediate sublists of . Richard Bird studied this problem in 2008 and presented a concise but cryptic algorithm without much explanation. We give this algorithm a proper derivation and discovered a key property that allows it to work. The algorithm builds trees that have certain shapes—the sizes along the left spine is a prefix of a diagonal in Pascal's triangle. The crucial function we derive transforms one diagonal to the next.
computer science, software engineering
What problem does this paper attempt to address?