1 | ; Initialization file for TinySCHEME 1.41 |
1 | ; Initialization file for TinySCHEME 1.41 |
2 | |
2 | |
3 | ; Per R5RS, up to four deep compositions should be defined |
3 | ; Per R5RS, up to four deep compositions should be defined |
4 | (define (caar x) (car (car x))) |
4 | (define (caar x) ( car (car x))) |
5 | (define (cadr x) (car (cdr x))) |
5 | (define (cadr x) ( car (cdr x))) |
6 | (define (cdar x) (cdr (car x))) |
6 | (define (cdar x) ( cdr (car x))) |
7 | (define (cddr x) (cdr (cdr x))) |
7 | (define (cddr x) ( cdr (cdr x))) |
8 | (define (caaar x) (car (car (car x)))) |
8 | (define (caaar x) ( car (car (car x)))) |
9 | (define (caadr x) (car (car (cdr x)))) |
9 | (define (caadr x) ( car (car (cdr x)))) |
10 | (define (cadar x) (car (cdr (car x)))) |
10 | (define (cadar x) ( car (cdr (car x)))) |
11 | (define (caddr x) (car (cdr (cdr x)))) |
11 | (define (caddr x) ( car (cdr (cdr x)))) |
12 | (define (cdaar x) (cdr (car (car x)))) |
12 | (define (cdaar x) ( cdr (car (car x)))) |
13 | (define (cdadr x) (cdr (car (cdr x)))) |
13 | (define (cdadr x) ( cdr (car (cdr x)))) |
14 | (define (cddar x) (cdr (cdr (car x)))) |
14 | (define (cddar x) ( cdr (cdr (car x)))) |
15 | (define (cdddr x) (cdr (cdr (cdr x)))) |
15 | (define (cdddr x) ( cdr (cdr (cdr x)))) |
16 | (define (caaaar x) (car (car (car (car x))))) |
16 | (define (caaaar x) (car (car (car (car x))))) |
17 | (define (caaadr x) (car (car (car (cdr x))))) |
17 | (define (caaadr x) (car (car (car (cdr x))))) |
18 | (define (caadar x) (car (car (cdr (car x))))) |
18 | (define (caadar x) (car (car (cdr (car x))))) |
19 | (define (caaddr x) (car (car (cdr (cdr x))))) |
19 | (define (caaddr x) (car (car (cdr (cdr x))))) |
20 | (define (cadaar x) (car (cdr (car (car x))))) |
20 | (define (cadaar x) (car (cdr (car (car x))))) |
… | |
… | |
719 | ; compatibility functions added by schmorp@schmorp.de |
719 | ; compatibility functions added by schmorp@schmorp.de |
720 | (macro (defmacro dform) |
720 | (macro (defmacro dform) |
721 | (let ((name (cadr dform)) (formals (caddr dform)) (body (cdddr dform))) |
721 | (let ((name (cadr dform)) (formals (caddr dform)) (body (cdddr dform))) |
722 | `(define-macro (,name . ,formals) ,@body))) |
722 | `(define-macro (,name . ,formals) ,@body))) |
723 | |
723 | |
|
|
724 | ;; r7rs |
|
|
725 | ; char library |
|
|
726 | ; string-upcase |
|
|
727 | ; string-downcase |
|
|
728 | ; string-foldcase |
|
|
729 | ; sring-map, vector-map, string-for-each, vector-for-each |
|
|
730 | ; bytevectors |
|
|
731 | |
724 | ;; srfi-1 |
732 | ;; srfi-1 |
725 | |
733 | |
726 | (define (check-arg pred val caller) |
734 | (define (check-arg pred val caller) |
727 | (let lp ((val val)) |
735 | (let lp ((val val)) |
728 | (if (pred val) val (lp (error "Bad argument" val pred caller))))) |
736 | (if (pred val) val (lp (error "Bad argument" val pred caller))))) |