This second definition looks standard, but it suffers from the same problem as the one for parents . The unknown class it refers to is that of the class of parents, which cannot be defined without a definition for the list of children, and so on. Now we can translate the family tree of figure into our Scheme data language. Before we can create a parent structure, of course, we must first define all of the nodes that represent children. And, just as in section , the best way to do this is to name a parent structure before we reuse it in a list of children.
Figure contains the complete Scheme representation for our descendant tree.
To avoid repetitions, it also includes definitions for lists of children. It consumes a parent structure and determines whether it or any of its descendants have blue eyes. The expressions in the template remind us that the eye color of the parent is available and can be checked. The answer is obviously true if the condition holds. The else clause contains the remaining expressions.