(import (scheme base) (scheme write)) (define (print obj) (write obj) (newline) obj) (letrec ((my-odd? (lambda (n) (if (= n 0) #t (not (my-even? (- n 1)))))) (my-even? (lambda (n) (if (= n 0) #t (not (my-odd? (- n 1))))))) (print '(my-odd? 42)) (print (my-odd? 42)) (print '(my-even? 57)) (print (my-even? 57))) (print 70) (print (let ((x 2) (y 3)) (let* ((x 7) (z (+ x y))) (* z x)))) (print 5) (print (letrec ((p (lambda (x) (+ 1 (q (- x 1))))) (q (lambda (y) (if (zero? y) 0 (+ 1 (p (- y 1)))))) (x (p 5)) (y x)) y)) ;; (let () ;; (define my-odd? (lambda (n) ;; (if (= n 0) ;; #t ;; (not (my-even? (- n 1)))))) ;; (define my-even? (lambda (n) ;; (if (= n 0) ;; #t ;; (not (my-odd? (- n 1)))))) ;; (print (my-odd? 42)) ;; (print (my-even? 57)))