* moved set-car! and set-cdr! to ikarus.pairs
This commit is contained in:
		
							parent
							
								
									fd5c6a1e47
								
							
						
					
					
						commit
						71ca0c1e06
					
				
							
								
								
									
										
											BIN
										
									
								
								src/ikarus.boot
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								src/ikarus.boot
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -69,18 +69,6 @@ | ||||||
|                ls |                ls | ||||||
|                (f x (cdr ls))))))) |                (f x (cdr ls))))))) | ||||||
| 
 | 
 | ||||||
| (primitive-set! 'set-car! |  | ||||||
|   (lambda (x y)  |  | ||||||
|     (unless (pair? x) |  | ||||||
|       (error 'set-car! "~s is not a pair" x)) |  | ||||||
|     ($set-car! x y))) |  | ||||||
| 
 |  | ||||||
| (primitive-set! 'set-cdr!  |  | ||||||
|   (lambda (x y) |  | ||||||
|     (unless (pair? x) |  | ||||||
|       (error 'set-cdr! "~s is not a pair" x)) |  | ||||||
|     ($set-cdr! x y))) |  | ||||||
| 
 |  | ||||||
| (primitive-set! 'vector-ref  | (primitive-set! 'vector-ref  | ||||||
|   (lambda (v i) |   (lambda (v i) | ||||||
|     (unless (vector? v) |     (unless (vector? v) | ||||||
|  |  | ||||||
|  | @ -2,16 +2,29 @@ | ||||||
| 
 | 
 | ||||||
| (library (ikarus pairs) | (library (ikarus pairs) | ||||||
|   (export |   (export | ||||||
|     cons |     cons set-car! set-cdr! | ||||||
|     car cdr caar cdar cadr cddr caaar cdaar cadar cddar caadr cdadr |     car cdr caar cdar cadr cddr caaar cdaar cadar cddar caadr cdadr | ||||||
|     caddr cdddr caaaar cdaaar cadaar cddaar caadar cdadar caddar |     caddr cdddr caaaar cdaaar cadaar cddaar caadar cdadar caddar | ||||||
|     cdddar caaadr cdaadr cadadr cddadr caaddr cdaddr cadddr cddddr) |     cdddar caaadr cdaadr cadadr cddadr caaddr cdaddr cadddr cddddr) | ||||||
|   (import  |   (import  | ||||||
|     (only (ikarus) define if lambda pair? error quote let) |     (only (ikarus) define if lambda pair? error quote let unless) | ||||||
|     (rename (only (scheme) cons $car $cdr) |     (rename (only (scheme) cons $car $cdr $set-car! $set-cdr!) | ||||||
|             (cons sys:cons))) |             (cons sys:cons))) | ||||||
| 
 | 
 | ||||||
|   (define cons (lambda (x y) (sys:cons x y))) |   (define cons (lambda (x y) (sys:cons x y))) | ||||||
|  | 
 | ||||||
|  |   (define set-car! | ||||||
|  |     (lambda (x y)  | ||||||
|  |       (unless (pair? x) | ||||||
|  |         (error 'set-car! "~s is not a pair" x)) | ||||||
|  |       ($set-car! x y))) | ||||||
|  |    | ||||||
|  |   (define set-cdr!  | ||||||
|  |     (lambda (x y) | ||||||
|  |       (unless (pair? x) | ||||||
|  |         (error 'set-cdr! "~s is not a pair" x)) | ||||||
|  |       ($set-cdr! x y))) | ||||||
|  | 
 | ||||||
|   (define err |   (define err | ||||||
|     (lambda (who x) |     (lambda (who x) | ||||||
|       (error who "invalid list structure ~s" x))) |       (error who "invalid list structure ~s" x))) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Abdulaziz Ghuloum
						Abdulaziz Ghuloum