;;; assign2-answer-checker.lisp (defun check (number form answer) (format t "~%~% ~s evals to" form) (let ((ans (eval form))) (format t "~& ~s" (eval form)) (if (equal answer ans) (format t "~&--------------------Problem ~s is Correct" number) ;;else (format t "~&--------------------Problem ~s is NOT CORRECT" number)))) (setf bigmap '((a b c d z) (b e f) (c g h) (d i j) (e k z))) (check 1 '(pathproblem4 'a 'z bigmap) '(a z)) (check 2 '(robot-xy-diagonal '(3 2) '(1 4) 5) '((3 2) (2 3) (1 4))) (check 3 '(robot-xy-commands '(3 1) '(1 4) 5) '(N NW NW)) (check '4a '(all-ways-to-replace-atoms 'a) '((+ A 1) (+ A N) (- A 1) (- 1 A) (- A N) (- N A) (* A N) (/ 1 A) (/ A N) (/ N A) (EXPT A N) (EXPT N A))) (check '4b '(all-ways-to-replace-atoms '(+ a b)) '((+ (+ A 1) B) (+ (+ A N) B) (+ (- A 1) B) (+ (- 1 A) B) (+ (- A N) B) (+ (- N A) B) (+ (* A N) B) (+ (/ 1 A) B) (+ (/ A N) B) (+ (/ N A) B) (+ (EXPT A N) B) (+ (EXPT N A) B) (+ A (+ B 1)) (+ A (+ B N)) (+ A (- B 1)) (+ A (- 1 B)) (+ A (- B N)) (+ A (- N B)) (+ A (* B N)) (+ A (/ 1 B)) (+ A (/ B N)) (+ A (/ N B)) (+ A (EXPT B N)) (+ A (EXPT N B))) ) (check '4c '(all-ways-to-replace-atoms '(- n 1)) '((- (+ N 1) 1) (- (+ N N) 1) (- (- N 1) 1) (- (- 1 N) 1) (- (- N N) 1) (- (- N N) 1) (- (* N N) 1) (- (/ 1 N) 1) (- (/ N N) 1) (- (/ N N) 1) (- (EXPT N N) 1) (- (EXPT N N) 1) (- N (+ 1 1)) (- N (+ 1 N)) (- N (- 1 1)) (- N (- 1 1)) (- N (- 1 N)) (- N (- N 1)) (- N (* 1 N)) (- N (/ 1 1)) (- N (/ 1 N)) (- N (/ N 1)) (- N (EXPT 1 N)) (- N (EXPT N 1)))) (multiple-value-bind (f v) (predict '(1 2 3)) (check 5 `(second (list ,f ,v)) 4)) (format t "~%~%Problem 6.:") (do-predict-problem '(2 3 4))