
This lecture further explores functions and their scopes and environments as well as functions as objects. Functions are first-class objects that have a type and can be assigned as a value, used as an argument for another procedure, or returned from another procedure. Being careful about environments enables the creation of concise, easily-read code.