Homework #4, Problem 2b Solutions

Implemented evaluate() for problem 2b.

Also fixed bug with build() where it didn’t return None when no
substitution was available.