Racket code of learning programming langauge from http://cs.brown.edu/courses/cs173/2012/