(module top (lib "eopl.ss" "eopl") (require "drscheme-init.scm") (require "mp1-soln.scm") ;; test-subst! : sym * sym * sym * s-list * s-list -> unspecified ;; prints either "test-name passed" or "test-name FAILED". ;; uses (run-experiment fn args correct-answer equal-answer?) (define test-subst! (lambda (test-name new old slist ans) (eopl:printf "~s " test-name) (let ((outcome (run-experiment subst (list new old slist) ans equal?))) (if (car outcome) (eopl:printf "passed ~%") (eopl:printf "FAILED~%"))))) (test-subst! 'subst-test-1 'a 'b '((b c) (b () d)) '((a c) (a () d))) (test-subst! 'subst-test-2 'a 'b '() '()) (test-subst! 'subst-test-3 'a 'b '(c b d a) '(c a d a)) ;; ...more like this )