ch4 -- Functional Programming