Introduction
Sometimes you want a function to create and give you another function to use later. This helps keep your code neat and flexible.
When you want to create a custom calculator that changes behavior based on input.
When you need to delay some work until later but decide what work to do now.
When you want to build small reusable pieces that can be combined in different ways.
When you want to create a function that remembers some information and uses it later.