1.3  
Formulating Abstractions with Higher-Order Functions