Accumulators for List Processing
l
reverse(L) = reverse(L, [ ]);
reverse([ ], A) => A;
reverse([E | L], A) => reverse(L, [E | A]);
initial accumulation
final accumulation
intermediate accumulation