* 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