So here is the general principle:
Anywhere in a computer program where you are supposed to supply some piece of information,
you can put an expression instead.
Actually, it’s a little more complicated than that; here’s the full version:
Anywhere in a computer program where you are supposed to supply some piece of information,
you can put an expression instead — as long as when that expression is evaluated, the result is of
the correct type.