Petite Chez Scheme Version 9.5 Copyright 1984-2017 Cisco Systems, Inc. > (define a '(3 6)) > (let ([end1 (car a)] [end2 (cadr a)]) (and (< end1 0) (> end2 0))) #f > (cons 1 2) (1 . 2) > (cons 1 '()) (1) > '(1 . ()) (1) > (define x '()) > x () > (cons 1 (cons 2 x)) (1 2) > (define impr (cons 1 (cons 2 3))) > impr (1 2 . 3) > (pair? impr) #t > (list? impr) #f > (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n 1)))))) > (fact -4) C-c C-c C-c C-c break> q > 3 3 > (define fact (lambda (n) (if (negative? n) "error" (if (zero? n) 1 (* n (fact (- n 1))))))) > (fact -4) "error" > (fact 6) 720 > (define fact (lambda (n) (if (negative? n) "error" (fact-acc n 1)))) > (define fact-acc (lambda (n acc) (if (zero? n) acc (fact-acc (- n 1) (* n acc))))) > (fact2 -5) Exception: variable fact2 is not bound > (define fact2 (lambda (n) (if (negative? n) "error" (fact-acc n 1)))) > (fact2 -5) "error" > (trace fact-acc) (fact-acc) > (fact2 5) |(fact-acc 5 1) |(fact-acc 4 5) |(fact-acc 3 20) |(fact-acc 2 60) |(fact-acc 1 120) |(fact-acc 0 120) |120 120 >