Things to learn during this stage that you should remember:
Term Rewriting System
Term rewriting system are a whole topic of research in itself. If you
need to be convinced, just look for
“term rewriting system” on Google.
More “Functional” Programming in C++
A lot of T6 is devoted to looking for specific nodes in lists of nodes,
and splitting, and splicing lists at these places. This could be done
by hand, with many hand-written iterations, or using functors and
STL algorithms. You are expected to do the latter, and to
discover things such as std::splice, std::find_if,
std::unary_function, std::not1 etc.