solution to Programming Assignment 2: Lexical Scoping