;;; Trees (define (burned-tree? tr1 tr2) (and (= (datum tr1) (datum tr2)) (burned-forest? (children tr1) (children tr2)))) (define (burned-forest? fr1 fr2) (cond ((null? fr1) #t) ((null? fr2) #f) (else (or (and (burned-tree? (car fr1) (car fr2)) (burned-forest? (cdr fr1) (cdr fr2))) (burned-forest? fr1 (cdr fr2)))))) ;;; Recursion and Higher-Order Functions (define (product-list ls) (if (null? ls) '() (cons (car ls) (map (lambda (num) (* num (car ls))) (product-list (cdr ls)))))) ;;; Orders of Growth O(n^4) in both cases (the constant factor of 4/3 pi in the second subpart will be ignored).