#lang racket (define (atom? x) (or (number? x) (boolean? x) (string? x) (symbol? x))) (define (num-atoms sexp) (if (atom? sexp) 1 (foldr + 0 (map num-atoms sexp)))) (define (atoms sexp) (if (atom? sexp) (list sexp) (foldr append null (map atoms sexp)))) ;;---------------------------------------------------------------------- ;; Put your definition of deep-reverse here: