我收到一棵树,并假设输出相同的树,其值为否定:1 变为 -1,-2 变为 2,#t 变为 #f,反之亦然。
这棵树是灵活的——每个都可以有多个儿子,一个或一个都没有。我不允许添加用户定义的帮助程序。但是,我可以使用内置(原始)程序:length、equal?、append、foldl、map、boolean?、not、take、last。
到目前为止,我所拥有的是:
(define inverse-tree
(lambda (tree)
(cond ((eq? '() tree) '())
((pair? tree)
(make-tree (inverse-tree (car tree))
(inverse-tree (cdr tree))))
(else (tree)))))