SICP 2.33: List-manipulation ops as accumulations