fixed fprintf line in scheme-script.c
This commit is contained in:
parent
0bd854dedf
commit
82b7edcf14
|
@ -505,8 +505,7 @@
|
||||||
[(pair? d)
|
[(pair? d)
|
||||||
(if ($fxzero? n)
|
(if ($fxzero? n)
|
||||||
(die who "list was altered!")
|
(die who "list was altered!")
|
||||||
(cons (f a)
|
(cons (f a) (map1 f ($car d) ($cdr d) ($fxsub1 n))))]
|
||||||
(map1 f ($car d) ($cdr d) ($fxsub1 n))))]
|
|
||||||
[(null? d)
|
[(null? d)
|
||||||
(if ($fxzero? n)
|
(if ($fxzero? n)
|
||||||
(cons (f a) '())
|
(cons (f a) '())
|
||||||
|
@ -534,9 +533,8 @@
|
||||||
(cons (f a1 a2) '())
|
(cons (f a1 a2) '())
|
||||||
(die who "list was altered"))]
|
(die who "list was altered"))]
|
||||||
[else
|
[else
|
||||||
(die who (if (list? d2)
|
(die who
|
||||||
"length mismatch"
|
(if (list? d2) "length mismatch" "not a proper list"))])]
|
||||||
"not a proper list"))])]
|
|
||||||
[else (die who "list was altered")])))
|
[else (die who "list was altered")])))
|
||||||
(define cars
|
(define cars
|
||||||
(lambda (ls*)
|
(lambda (ls*)
|
||||||
|
@ -560,21 +558,26 @@
|
||||||
(cons (cdr a) (cdrs (cdr ls*)))]
|
(cons (cdr a) (cdrs (cdr ls*)))]
|
||||||
[else
|
[else
|
||||||
(die 'map "length mismatch")]))])))
|
(die 'map "length mismatch")]))])))
|
||||||
|
(define (err-mutated all-lists)
|
||||||
|
(apply die 'map "some lists were mutated during operation" all-lists))
|
||||||
|
(define (err-mismatch all-lists)
|
||||||
|
(apply die 'map "length mismatch" all-lists))
|
||||||
|
(define (err-invalid all-lists)
|
||||||
|
(apply die 'map "invalid arguments" all-lists))
|
||||||
(define mapm
|
(define mapm
|
||||||
(lambda (f ls ls* n)
|
(lambda (f ls ls* n all-lists)
|
||||||
(cond
|
(cond
|
||||||
[(null? ls)
|
[(null? ls)
|
||||||
(if (andmap null? ls*)
|
(if (andmap null? ls*)
|
||||||
(if (fxzero? n)
|
(if (fxzero? n)
|
||||||
'()
|
'()
|
||||||
(die 'map "lists were mutated during operation"))
|
(err-mutated all-lists))
|
||||||
(die 'map "length mismatch"))]
|
(err-mismatch all-lists))]
|
||||||
[(fxzero? n)
|
[(fxzero? n) (err-mutated all-lists)]
|
||||||
(die 'map "lists were mutated during operation")]
|
|
||||||
[else
|
[else
|
||||||
(cons
|
(cons
|
||||||
(apply f (car ls) (cars ls*))
|
(apply f (car ls) (cars ls*))
|
||||||
(mapm f (cdr ls) (cdrs ls*) (fxsub1 n)))])))
|
(mapm f (cdr ls) (cdrs ls*) (fxsub1 n) all-lists))])))
|
||||||
(define map
|
(define map
|
||||||
(case-lambda
|
(case-lambda
|
||||||
[(f ls)
|
[(f ls)
|
||||||
|
@ -585,7 +588,7 @@
|
||||||
(let ([d ($cdr ls)])
|
(let ([d ($cdr ls)])
|
||||||
(map1 f ($car ls) d (len d d 0)))]
|
(map1 f ($car ls) d (len d d 0)))]
|
||||||
[(null? ls) '()]
|
[(null? ls) '()]
|
||||||
[else (die who "improper list")])]
|
[else (err-invalid (list ls))])]
|
||||||
[(f ls ls2)
|
[(f ls ls2)
|
||||||
(unless (procedure? f)
|
(unless (procedure? f)
|
||||||
(die who "not a procedure" f))
|
(die who "not a procedure" f))
|
||||||
|
@ -594,30 +597,18 @@
|
||||||
(if (pair? ls2)
|
(if (pair? ls2)
|
||||||
(let ([d ($cdr ls)])
|
(let ([d ($cdr ls)])
|
||||||
(map2 f ($car ls) ($car ls2) d ($cdr ls2) (len d d 0)))
|
(map2 f ($car ls) ($car ls2) d ($cdr ls2) (len d d 0)))
|
||||||
(die who
|
(err-invalid (list ls ls2)))]
|
||||||
(if (list? ls2)
|
[(and (null? ls) (null? ls2)) '()]
|
||||||
"length mismatch"
|
[else (err-invalid (list ls ls2))])]
|
||||||
"not a proper list")))]
|
|
||||||
[(null? ls)
|
|
||||||
(if (null? ls2)
|
|
||||||
'()
|
|
||||||
(die who
|
|
||||||
(if (list? ls2)
|
|
||||||
"length mismatch"
|
|
||||||
"not a proper list")))]
|
|
||||||
[else (die who "not a list")])]
|
|
||||||
[(f ls . ls*)
|
[(f ls . ls*)
|
||||||
(unless (procedure? f)
|
(unless (procedure? f)
|
||||||
(die who "not a procedure" f))
|
(die who "not a procedure" f))
|
||||||
(cond
|
(cond
|
||||||
[(pair? ls)
|
[(pair? ls)
|
||||||
(let ([n (len ls ls 0)])
|
(let ([n (len ls ls 0)])
|
||||||
(mapm f ls ls* n))]
|
(mapm f ls ls* n (cons ls ls*)))]
|
||||||
[(null? ls)
|
[(and (null? ls) (andmap null? ls*)) '()]
|
||||||
(if (andmap null? ls*)
|
[else (err-invalid (cons ls ls*))])])))
|
||||||
'()
|
|
||||||
(die who "invalid arguments"))]
|
|
||||||
[else (die who "not a list" ls)])])))
|
|
||||||
|
|
||||||
(module (for-each)
|
(module (for-each)
|
||||||
(define who 'for-each)
|
(define who 'for-each)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1720
|
1721
|
||||||
|
|
|
@ -37,7 +37,7 @@ void ikarus_usage(){
|
||||||
arguments ... as (command-line)\n\
|
arguments ... as (command-line)\n\
|
||||||
\n\
|
\n\
|
||||||
Consult the Ikarus Scheme User's Guide for more details.\n\n";
|
Consult the Ikarus Scheme User's Guide for more details.\n\n";
|
||||||
fprintf(stderr, helpstring);
|
fprintf(stderr, "%s", helpstring);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv){
|
int main(int argc, char** argv){
|
||||||
|
|
Loading…
Reference in New Issue