An environment is a sequence of frames. eval define: bind a symbol to a value in a frame (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) pointing to procedure's environment bind parameters to the values of the arguments evaluate the body in this (new) environment To evaluate a combination: (same as before) evaluate the subexpressions apply the value of the first sub-expr to the remaining values