This works because each call to a factory function like this gets its own set of state
information. In our case, the function we assign to name g remembers 3, and f remembers
2, because each has its own state information retained by the variable N in maker.