Getting by without variables
You can bind a name to a value
- similar to a function argument
- you can't change the value, but you can rebind the same name later
Iteration becomes difficult
- you can use recursion instead
- compiler sometimes translates recursion back into iteration