Using Lambdas and Callables for Deferred Evaluation, Control Flow, and New Language Patterns