Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; FamilyTree -> Names
- ; extract the names of all mothers and fathers from a family tree
- (define (names-of-ancestors family-tree)
- (match family-tree
- [(person name mother father)
- (local [(define (append-parent parent selector)
- (local [(define (select-parents parent) (selector (names-of-ancestors parent)))]
- (make-names (append (if (person? parent)
- (list (person-name parent))
- (list))
- (get-parents mother))
- (get-parents father))))]
- (make-names (append-parent mother names-mothers)
- (append-parent father names-fathers)))]
- [#false
- (make-names (list) (list))]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement