34 lines
		
	
	
		
			813 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			813 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | ; Numeric procedures | ||
|  | ; Uses: startup | ||
|  | 
 | ||
|  | (define > (lambda (n1 n2) (< n2 n1))) | ||
|  | (define <= (lambda (n1 n2) (not (< n2 n1)))) | ||
|  | (define >= (lambda (n1 n2) (not (< n1 n2)))) | ||
|  | 
 | ||
|  | (define abs | ||
|  |   (lambda (n) | ||
|  |     (if (< n 0) (- 0 n) n))) | ||
|  | 
 | ||
|  | (define minus (lambda (n) (- 0 n))) | ||
|  | 
 | ||
|  | (define even? (lambda (n) (= (remainder n 2) 0))) | ||
|  | (define odd? (lambda (n) (not (even? n)))) | ||
|  | 
 | ||
|  | (define zero? (lambda (n) (= n 0))) | ||
|  | 
 | ||
|  | (define 1+ (lambda (n) (+ n 1))) | ||
|  | (define -1+ (lambda (n) (- n 1))) | ||
|  | 
 | ||
|  | (define min (lambda (n1 n2) (if (< n1 n2) n1 n2))) | ||
|  | (define max (lambda (n1 n2) (if (< n1 n2) n2 n1))) | ||
|  | 
 | ||
|  | (define expt			; Pre: 0 <= power | ||
|  |   (lambda (base power) | ||
|  |     (if (= power 0) | ||
|  |         1 | ||
|  |         (if (even? power) | ||
|  |             (square (expt base (quotient power 2))) | ||
|  |             (* base (expt base (- power 1))))))) | ||
|  | 
 | ||
|  | (define square (lambda (n) (* n n))) |