;; has-teen-or-child?: person -> boolean ;; consumes a person and returns true if anyone in the person's tree ;; was born after 1991 (define (has-teen-or-child? a-per) (or (> (person-year a-per) 1991) (youngster-in-list? (person-children a-per)))) ;; youngster-in-list?: list-of-person -> boolean ;; returns true if anyone in list, or any of their descendants, is ;; born after 1991 (define (youngster-in-list? alop) (cond [(empty? alop) false] [(cons? alop) (or (has-teen-or-child? (first alop)) (youngster-in-list? (rest alop)))]))