Hi Pengcheng: Mitch wrote the following about Demeter in 1996: \item The framework is essentially imperative. It is not so clear how to do more complicated tasks that are easily expressed recursively, such as annotating a parse tree, or constructing a copy of a parse tree with each node annotated by its set of free variables. Such operations would seem at best to require hand-simulation of the data structures involved in the recursion; the manipulation of \verb|bound_vars| is simple enough, but more complicated examples seem to require uncomfortably much hand-coding. \end{itemize} Please can you program = constructing a copy of a parse tree with each node annotated by its set of free variables. = using FunctionalVisitor and compare it with the iterative solution. For COM 3362. By Tuesday please. -- Karl