Petite Chez Scheme Version 9.5 Copyright 1984-2017 Cisco Systems, Inc. > (define a '(2 3 4)) > a (2 3 4) > (define b (cons 1 a)) > b (1 2 3 4) > a (2 3 4) > (define c '(2 3 4)) > (equal? a c) #t > (eq? a c) #f > (define fact (lambda (n) (cond [(zero? n) 1] [else (* n (fact (- n 1)))]))) > (fact 4) 24 > (fact -2) C-c C-c break>q break>q Invalid command. Type ? for options. br(define fact2 (lambda (n) (if (or (negative? n) (not (integer? n))) "error" (fact-acc n 1))))eak> q > (define fact2 (lambda (n) (if (or (negative? n) (not (integer? n))) "error" (fact-acc n 1)))) > (define fact-acc (lambda (n acc) (if (zero? n) acc (fact-acc (- n 1) (* n acc))))) > (trace fact fact2 fact-acc) (fact fact2 fact-acc) > (fact 4) |(fact 4) | (fact 3) | |(fact 2) | | (fact 1) | | |(fact 0) | | |1 | | 1 | |2 | 6 |24 24 > (fact2 4) |(fact2 4) |(fact-acc 4 1) |(fact-acc 3 4) |(fact-acc 2 12) |(fact-acc 1 24) |(fact-acc 0 24) |24 24 >