55 lines
896 B
Scheme
55 lines
896 B
Scheme
(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)))
|