An environment is a sequence of frames. eval define: bind a symbol to a value in an environment eval lambda: create a procedure object (two circles) has a pointer to env where lambda was evaluated has list of parameters has the body of the procedure eval a call: create a new frame (a square) square points to procedure's environment bind parameters to the values of the arguments evaluate the body in this (new) environment eval set!: Change the value bound to var in the closest frame of the environment To evaluate a combination: (same as before) evaluate the subexpressions apply the value of the first sub-expr to the remaining values