Abstract
The third list-homomorphism theorem says that a function is a list homomorphism if it can be described as an instance of both a foldr and a foldl . We prove a dual theorem for unfolds and generalise both theorems to trees: if a function generating a list can be described both as an unfoldr and an unfoldl , the list can be generated from the middle, and a function that processes or builds a tree both upwards and downwards may independently process/build a subtree and its one-hole context. The point-free, relational formalism helps to reveal the beautiful symmetry hidden in the theorem.
Original language | English |
---|---|
Pages (from-to) | 385-391 |
Number of pages | 7 |
Journal | ACM SIGPLAN Notices |
Volume | 46 |
Issue number | 9 |
DOIs | |
Publication status | Published - 2011 Sep 1 |
Keywords
- Program derivation
- Third list homomorphism theorem
ASJC Scopus subject areas
- Computer Science(all)