mirror of
https://github.com/false-schemers/skint.git
synced 2024-12-25 21:58:54 +01:00
faster library appends; -v in repl (verbosity)
This commit is contained in:
parent
c32c9cfe49
commit
e1f3f69346
5 changed files with 560 additions and 417 deletions
100
s.c
100
s.c
|
@ -1348,12 +1348,6 @@ char *s_code[] = {
|
|||
0,
|
||||
"&0{%3.2,.2,.2V5]3}@!(y21:%25residual-vector-set!)",
|
||||
|
||||
"vector-append",
|
||||
"l7:y12:syntax-rules;n;l2:l1:y1:_;;l2:y5:quote;v0:;;;l2:l2:y1:_;y1:x;;l"
|
||||
"2:y4:%25ckv;y1:x;;;l2:l3:y1:_;y1:x;y1:y;;l3:y5:%25vcat;y1:x;y1:y;;;l2:"
|
||||
"l5:y1:_;y1:x;y1:y;y1:z;y3:...;;l3:y13:vector-append;y1:x;l4:y13:vector"
|
||||
"-append;y1:y;y1:z;y3:...;;;;l2:y1:_;y23:%25residual-vector-append;;",
|
||||
|
||||
"list->vector",
|
||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25ltov;y1:x;;;l2:py1:_;y"
|
||||
"12:syntax-rules;;py22:%25residual-list->vector;y12:syntax-rules;;;l2:y"
|
||||
|
@ -1366,16 +1360,21 @@ char *s_code[] = {
|
|||
"&0{%3n,'1,.4I-,,#0.3,.1,.6,&3{%2:0,.1I<?{.1]2}.1,.1,:2V4c,'1,.2I-,:1^["
|
||||
"22}.!0.0^_1[32}@!(y15:subvector->list)",
|
||||
|
||||
"vector->list",
|
||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25vtol;y1:x;;;l2:py1:_;y"
|
||||
"1:r;;py22:%25residual-vector->list;y1:r;;;l2:y1:_;y22:%25residual-vect"
|
||||
"or->list;;",
|
||||
|
||||
0,
|
||||
"&0{%3.2,.2,.2,@(y15:subvector->list)[33}%x,&0{%2.0V3,.2,.2,@(y15:subve"
|
||||
"ctor->list)[23}%x,&0{%1.0X0]1}%x,&3{|10|21|32%%}@!(y12:vector->list)",
|
||||
"ctor->list)[23}%x,&0{%1.0X0]1}%x,&3{|10|21|32%%}@!(y22:%25residual-vec"
|
||||
"tor->list)",
|
||||
|
||||
0,
|
||||
"&0{%5.1,.1V3I-,.4I+,.5In,.4,.3I>!?{.4,.3,,#0.3,.7,.6,.3,&4{%2:3,.2I<!,"
|
||||
".0?{.0]3}.2,:2V4,.2,:1V5.2'1,.3I+,.2'1,.3I+,:0^[32}.!0.0^_1[62}'1,.1I-"
|
||||
",${'1,.8,.(i10),@(y13:%25residual-fx-)[03},.4I+,,#0.7,.7,.6,.3,&4{%2:3"
|
||||
",.2I<,.0?{.0]3}.2,:2V4,.2,:1V5.2'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62}@"
|
||||
"!(y15:subvector-copy!)",
|
||||
",'1,.6,.8I-I-,.4I+,,#0.7,.7,.6,.3,&4{%2:3,.2I<,.0?{.0]3}.2,:2V4,.2,:1V"
|
||||
"5.2'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62}@!(y15:subvector-copy!)",
|
||||
|
||||
0,
|
||||
"&0{%5.4,.4,.4,.4,.4,@(y15:subvector-copy!)[55}%x,&0{%4.2V3,.4,.4,.4,.4"
|
||||
|
@ -1414,6 +1413,25 @@ char *s_code[] = {
|
|||
"vector->string)[23}%x,&0{%1.0V3,'0,.2,@(y17:subvector->string)[13}%x,&"
|
||||
"3{|10|21|32%%}@!(y14:vector->string)",
|
||||
|
||||
0,
|
||||
"&0{%1'0,.1,,#0.0,&1{%2.0u?{.1]2}.0aV3,.2I+,.1d,:0^[22}.!0.0^_1[12}@!(y"
|
||||
"18:vectors-sum-length)",
|
||||
|
||||
0,
|
||||
"&0{%2'0,.2,,#0.0,.4,&2{%2.0u?{:0]2}.0d,.1a,.0V3,${.2,'0,.5,.9,:0,@(y15"
|
||||
":subvector-copy!)[05}.0,.5I+,.3,:1^[52}.!0.0^_1[22}@!(y18:vectors-copy"
|
||||
"-into!)",
|
||||
|
||||
0,
|
||||
"&0{%!0.0,f,${.4,@(y18:vectors-sum-length)[01}V2,@(y18:vectors-copy-int"
|
||||
"o!)[12}@!(y23:%25residual-vector-append)",
|
||||
|
||||
"vector-append",
|
||||
"l7:y12:syntax-rules;n;l2:l1:y1:_;;l2:y5:quote;v0:;;;l2:l2:y1:_;y1:x;;l"
|
||||
"2:y4:%25ckv;y1:x;;;l2:l3:y1:_;y1:x;y1:y;;l3:y5:%25vcat;y1:x;y1:y;;;l2:"
|
||||
"py1:_;y1:r;;py23:%25residual-vector-append;y1:r;;;l2:y1:_;y23:%25resid"
|
||||
"ual-vector-append;;",
|
||||
|
||||
"string?",
|
||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25strp;y1:x;;;l2:py1:_;y"
|
||||
"12:syntax-rules;;py17:%25residual-string?;y12:syntax-rules;;;l2:y1:_;y"
|
||||
|
@ -1473,16 +1491,21 @@ char *s_code[] = {
|
|||
"&0{%3n,'1,.4I-,,#0.3,.1,.6,&3{%2:0,.1I<?{.1]2}.1,.1,:2S4c,'1,.2I-,:1^["
|
||||
"22}.!0.0^_1[32}@!(y15:substring->list)",
|
||||
|
||||
"string->list",
|
||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25stol;y1:x;;;l2:py1:_;y"
|
||||
"1:r;;py22:%25residual-string->list;y1:r;;;l2:y1:_;y22:%25residual-stri"
|
||||
"ng->list;;",
|
||||
|
||||
0,
|
||||
"&0{%3.2,.2,.2,@(y15:substring->list)[33}%x,&0{%2.0S3,.2,.2,@(y15:subst"
|
||||
"ring->list)[23}%x,&0{%1.0X2]1}%x,&3{|10|21|32%%}@!(y12:string->list)",
|
||||
"ring->list)[23}%x,&0{%1.0X2]1}%x,&3{|10|21|32%%}@!(y22:%25residual-str"
|
||||
"ing->list)",
|
||||
|
||||
0,
|
||||
"&0{%5.1,.1S3I-,.4I+,.5In,.4,.3I>!?{.4,.3,,#0.3,.7,.6,.3,&4{%2:3,.2I<!,"
|
||||
".0?{.0]3}.2,:2S4,.2,:1S5.2'1,.3I+,.2'1,.3I+,:0^[32}.!0.0^_1[62}'1,.1I-"
|
||||
",${'1,.8,.(i10),@(y13:%25residual-fx-)[03},.4I+,,#0.7,.7,.6,.3,&4{%2:3"
|
||||
",.2I<,.0?{.0]3}.2,:2S4,.2,:1S5.2'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62}@"
|
||||
"!(y15:substring-copy!)",
|
||||
",'1,.6,.8I-I-,.4I+,,#0.7,.7,.6,.3,&4{%2:3,.2I<,.0?{.0]3}.2,:2S4,.2,:1S"
|
||||
"5.2'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62}@!(y15:substring-copy!)",
|
||||
|
||||
0,
|
||||
"&0{%5.4,.4,.4,.4,.4,@(y15:substring-copy!)[55}%x,&0{%4.2S3,.4,.4,.4,.4"
|
||||
|
@ -1524,6 +1547,25 @@ char *s_code[] = {
|
|||
"string->vector)[23}%x,&0{%1.0S3,'0,.2,@(y17:substring->vector)[13}%x,&"
|
||||
"3{|10|21|32%%}@!(y14:string->vector)",
|
||||
|
||||
0,
|
||||
"&0{%1'0,.1,,#0.0,&1{%2.0u?{.1]2}.0aS3,.2I+,.1d,:0^[22}.!0.0^_1[12}@!(y"
|
||||
"18:strings-sum-length)",
|
||||
|
||||
0,
|
||||
"&0{%2'0,.2,,#0.0,.4,&2{%2.0u?{:0]2}.0d,.1a,.0S3,${.2,'0,.5,.9,:0,@(y15"
|
||||
":substring-copy!)[05}.0,.5I+,.3,:1^[52}.!0.0^_1[22}@!(y18:strings-copy"
|
||||
"-into!)",
|
||||
|
||||
0,
|
||||
"&0{%!0.0,'(c ),${.4,@(y18:strings-sum-length)[01}S2,@(y18:strings-copy"
|
||||
"-into!)[12}@!(y23:%25residual-string-append)",
|
||||
|
||||
"string-append",
|
||||
"l7:y12:syntax-rules;n;l2:l1:y1:_;;s0:;;l2:l2:y1:_;y1:x;;l2:y4:%25cks;y"
|
||||
"1:x;;;l2:l3:y1:_;y1:x;y1:y;;l3:y5:%25scat;y1:x;y1:y;;;l2:py1:_;y1:r;;p"
|
||||
"y23:%25residual-string-append;y1:r;;;l2:y1:_;y23:%25residual-string-ap"
|
||||
"pend;;",
|
||||
|
||||
"string-cmp",
|
||||
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:y;;l3:y5:%25scmp;y1:x;y1:y;;;"
|
||||
"l2:py1:_;y12:syntax-rules;;py20:%25residual-string-cmp;y12:syntax-rule"
|
||||
|
@ -1710,29 +1752,31 @@ char *s_code[] = {
|
|||
|
||||
0,
|
||||
"&0{%!2.0u?{.2S3,'(c ),.1S2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${"
|
||||
".2,:2S4,:1[01},.1,:3S5.0'1,.1I+,:4^[11}.!0.0^_1[51}${@(y12:string->lis"
|
||||
"t),${.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0"
|
||||
"^_1[01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X3]3}@!(y10:stri"
|
||||
"ng-map)",
|
||||
".2,:2S4,:1[01},.1,:3S5.0'1,.1I+,:4^[11}.!0.0^_1[51}${@(y22:%25residual"
|
||||
"-string->list),${.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c"
|
||||
"]1}n]1}.!0.0^_1[01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X3]3"
|
||||
"}@!(y10:string-map)",
|
||||
|
||||
0,
|
||||
"&0{%!2.0u?{.2V3,f,.1V2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${.2,:"
|
||||
"2V4,:1[01},.1,:3V5.0'1,.1I+,:4^[11}.!0.0^_1[51}${@(y12:vector->list),$"
|
||||
"{.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1["
|
||||
"01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X1]3}@!(y10:vector-m"
|
||||
"ap)",
|
||||
"2V4,:1[01},.1,:3V5.0'1,.1I+,:4^[11}.!0.0^_1[51}${@(y22:%25residual-vec"
|
||||
"tor->list),${.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n"
|
||||
"]1}.!0.0^_1[01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X1]3}@!("
|
||||
"y10:vector-map)",
|
||||
|
||||
0,
|
||||
"&0{%!2.0u?{.2S3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2S4,:1["
|
||||
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}@(y12:string->list),${.3,.6c,,#0.4,.1,"
|
||||
"&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.2c,@(y18:%"
|
||||
"25residual-for-each),@(y5:%25appl)[32}@!(y15:string-for-each)",
|
||||
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}@(y22:%25residual-string->list),${.3,."
|
||||
"6c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1"
|
||||
",.2c,@(y18:%25residual-for-each),@(y5:%25appl)[32}@!(y15:string-for-ea"
|
||||
"ch)",
|
||||
|
||||
0,
|
||||
"&0{%!2.0u?{.2V3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2V4,:1["
|
||||
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}@(y12:vector->list),${.3,.6c,,#0.4,.1,"
|
||||
"&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.2c,@(y18:%"
|
||||
"25residual-for-each),@(y5:%25appl)[32}@!(y15:vector-for-each)",
|
||||
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}@(y22:%25residual-vector->list),${.3,."
|
||||
"6c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1"
|
||||
",.2c,@(y18:%25residual-for-each),@(y5:%25appl)[32}@!(y15:vector-for-ea"
|
||||
"ch)",
|
||||
|
||||
"input-port?",
|
||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y4:%25ipp;y1:x;;;l2:py1:_;y1"
|
||||
|
|
29
src/k.sf
29
src/k.sf
|
@ -1331,6 +1331,8 @@
|
|||
; REPL
|
||||
;---------------------------------------------------------------------------------------------
|
||||
|
||||
(define *verbose* #f)
|
||||
|
||||
(define (run-tests)
|
||||
(define start (current-jiffy))
|
||||
(display "Running tests ...") (newline)
|
||||
|
@ -1344,20 +1346,19 @@
|
|||
|
||||
(define (repl-eval x)
|
||||
(let ([xexp (transform #f x)])
|
||||
(display "TRANSFORM =>") (newline)
|
||||
(write xexp) (newline)
|
||||
(when *verbose* (display "TRANSFORM =>") (newline) (write xexp) (newline))
|
||||
(if (eq? (car xexp) 'define) (set-car! xexp 'set!))
|
||||
(display "COMPILE-TO-STRING =>") (newline)
|
||||
(when *verbose* (display "COMPILE-TO-STRING =>") (newline))
|
||||
(let ([cstr (compile-to-string xexp)] [start #f])
|
||||
(display cstr) (newline)
|
||||
(display "DECODE+EXECUTE =>") (newline)
|
||||
(set! start (current-jiffy))
|
||||
(let* ([thunk (decode cstr)]
|
||||
;[foo (begin (display "decoded: ") (write thunk) (newline))]
|
||||
[res (execute thunk)])
|
||||
(when *verbose*
|
||||
(display cstr) (newline)
|
||||
(display "DECODE+EXECUTE =>") (newline)
|
||||
(set! start (current-jiffy)))
|
||||
(let* ([thunk (decode cstr)] [res (execute thunk)])
|
||||
(write res) (newline))
|
||||
(display "Elapsed time: ") (write (* 1000 (/ (- (current-jiffy) start) (jiffies-per-second))))
|
||||
(display " ms.") (newline))))
|
||||
(when *verbose*
|
||||
(display "Elapsed time: ") (write (* 1000 (/ (- (current-jiffy) start) (jiffies-per-second))))
|
||||
(display " ms.") (newline)))))
|
||||
|
||||
(define (repl-eval-top-form x)
|
||||
(cond
|
||||
|
@ -1402,7 +1403,11 @@
|
|||
(cond
|
||||
[(syntax-match? '("-c" *) args)
|
||||
(process-file (cadr args))]
|
||||
[(syntax-match? '("-t") args)
|
||||
(run-tests)]
|
||||
[(syntax-match? '("-v") args)
|
||||
(set! *verbose* #t)
|
||||
(run-repl)]
|
||||
[else
|
||||
;(run-tests)
|
||||
(run-repl)])))
|
||||
|
||||
|
|
69
src/s.scm
69
src/s.scm
|
@ -488,20 +488,19 @@
|
|||
|
||||
(define-inline (vector-set! x i v) %residual-vector-set! (%vput x i v))
|
||||
|
||||
(define-syntax vector-append
|
||||
(syntax-rules ()
|
||||
[(_) '#()] [(_ x) (%ckv x)]
|
||||
[(_ x y) (%vcat x y)]
|
||||
[(_ x y z ...) (vector-append x (vector-append y z ...))]
|
||||
[_ %residual-vector-append]))
|
||||
|
||||
(define-inline (list->vector x) %residual-list->vector (%ltov x))
|
||||
|
||||
(define (subvector->list vec start end)
|
||||
(let loop ([i (fx- end 1)] [l '()])
|
||||
(if (fx<? i start) l (loop (fx- i 1) (cons (vector-ref vec i) l)))))
|
||||
|
||||
(define vector->list
|
||||
(define-syntax vector->list
|
||||
(syntax-rules ()
|
||||
[(_ x) (%vtol x)]
|
||||
[(_ . r) (%residual-vector->list . r)]
|
||||
[_ %residual-vector->list]))
|
||||
|
||||
(define %residual-vector->list
|
||||
(case-lambda
|
||||
[(vec) (%vtol vec)]
|
||||
[(vec start) (subvector->list vec start (vector-length vec))]
|
||||
|
@ -558,6 +557,29 @@
|
|||
[(vec start) (subvector->string vec start (vector-length vec))]
|
||||
[(vec start end) (subvector->string vec start end)]))
|
||||
|
||||
(define (vectors-sum-length vecs)
|
||||
(let loop ([vecs vecs] [l 0])
|
||||
(if (null? vecs) l (loop (cdr vecs) (fx+ l (vector-length (car vecs)))))))
|
||||
|
||||
(define (vectors-copy-into! to vecs)
|
||||
(let loop ([vecs vecs] [i 0])
|
||||
(if (null? vecs)
|
||||
to
|
||||
(let ([vec (car vecs)] [vecs (cdr vecs)])
|
||||
(let ([len (vector-length vec)])
|
||||
(subvector-copy! to i vec 0 len)
|
||||
(loop vecs (fx+ i len)))))))
|
||||
|
||||
(define (%residual-vector-append . vecs)
|
||||
(vectors-copy-into! (make-vector (vectors-sum-length vecs)) vecs))
|
||||
|
||||
(define-syntax vector-append
|
||||
(syntax-rules ()
|
||||
[(_) '#()] [(_ x) (%ckv x)]
|
||||
[(_ x y) (%vcat x y)]
|
||||
[(_ . r) (%residual-vector-append . r)]
|
||||
[_ %residual-vector-append]))
|
||||
|
||||
|
||||
;---------------------------------------------------------------------------------------------
|
||||
; Strings
|
||||
|
@ -596,7 +618,13 @@
|
|||
(let loop ([i (fx- end 1)] [l '()])
|
||||
(if (fx<? i start) l (loop (fx- i 1) (cons (string-ref str i) l)))))
|
||||
|
||||
(define string->list
|
||||
(define-syntax string->list
|
||||
(syntax-rules ()
|
||||
[(_ x) (%stol x)]
|
||||
[(_ . r) (%residual-string->list . r)]
|
||||
[_ %residual-string->list]))
|
||||
|
||||
(define %residual-string->list
|
||||
(case-lambda
|
||||
[(str) (%stol str)]
|
||||
[(str start) (substring->list str start (string-length str))]
|
||||
|
@ -650,6 +678,29 @@
|
|||
[(str start) (substring->vector str start (string-length str))]
|
||||
[(str start end) (substring->vector str start end)]))
|
||||
|
||||
(define (strings-sum-length strs)
|
||||
(let loop ([strs strs] [l 0])
|
||||
(if (null? strs) l (loop (cdr strs) (fx+ l (string-length (car strs)))))))
|
||||
|
||||
(define (strings-copy-into! to strs)
|
||||
(let loop ([strs strs] [i 0])
|
||||
(if (null? strs)
|
||||
to
|
||||
(let ([str (car strs)] [strs (cdr strs)])
|
||||
(let ([len (string-length str)])
|
||||
(substring-copy! to i str 0 len)
|
||||
(loop strs (fx+ i len)))))))
|
||||
|
||||
(define (%residual-string-append . strs)
|
||||
(strings-copy-into! (make-string (strings-sum-length strs)) strs))
|
||||
|
||||
(define-syntax string-append
|
||||
(syntax-rules ()
|
||||
[(_) ""] [(_ x) (%cks x)]
|
||||
[(_ x y) (%scat x y)]
|
||||
[(_ . r) (%residual-string-append . r)]
|
||||
[_ %residual-string-append]))
|
||||
|
||||
(define-inline (string-cmp x y) %residual-string-cmp (%scmp x y))
|
||||
(define-inline (string=? x y) %residual-string<? (%seq x y))
|
||||
(define-inline (string<? x y) %residual-string<? (%slt x y))
|
||||
|
|
64
t.c
64
t.c
|
@ -153,9 +153,9 @@ char *t_code[] = {
|
|||
|
||||
0,
|
||||
"&0{%2${.2,,#0.0,&1{%1${.2,@(y3:id?)[01}?{.0,@(y7:id->sym)[11}.0p?{${.2"
|
||||
"d,:0^[01},${.3a,:0^[01}c]1}.0V0?{:0^,${${.5,@(y12:vector->list)[01},,#"
|
||||
"0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1X1]1}"
|
||||
".0]1}.!0.0^_1[01},'(y5:quote),l2]2}@!(y11:xform-quote)",
|
||||
"d,:0^[01},${.3a,:0^[01}c]1}.0V0?{:0^,${.3X0,,#0.4,.1,&2{%1.0p?{${.2d,:"
|
||||
"0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1X1]1}.0]1}.!0.0^_1[01},'(y5:q"
|
||||
"uote),l2]2}@!(y11:xform-quote)",
|
||||
|
||||
0,
|
||||
"&0{%2${.2,.4[01},.0Y0?{.0,'(y3:ref),l2]3}.0,@(y11:binding-val)[31}@!(y"
|
||||
|
@ -274,36 +274,34 @@ char *t_code[] = {
|
|||
"}.!1.3,&1{%1.0p?{.0a,:0^[11}f]1}.!2.7,.9,&2{%1:0?{:0,.1q]1}${.2,@(y3:i"
|
||||
"d?)[01}?{@(y30:denotation-of-default-ellipsis),${.3,:1[01}q]1}f]1}.!3."
|
||||
"2,&1{%3n,.2,.2,,#0:0,.1,.8,&3{%3${.2,@(y3:id?)[01}?{.1?{${.2,:0[01}}{f"
|
||||
"}?{.2,.1c]3}.2]3}.0V0?{.2,.2,${.4,@(y12:vector->list)[01},:1^[33}.0p?{"
|
||||
"${.2d,:2^[01}?{${.4,.4,.4dd,:1^[03},t,.2a,:1^[33}${.4,.4,.4d,:1^[03},."
|
||||
"2,.2a,:1^[33}.2]3}.!0.0^_1[33}.!4.4,.2,.4,.3,.(i11),&5{%3.1,.1,.4,:0,:"
|
||||
"1,:2,:3,:4,&8{%1,#0.1,&1{%0f,:0[01}.!0n,:7,:6,,#0.4,.1,:0,:1,:2,:3,:4,"
|
||||
":5,&8{%3,#0:7,.4,&2{%1.0?{:0]1}:1^[10}.!0${.3,@(y3:id?)[01}?{${.3,:2^["
|
||||
"01}?{${.4,@(y3:id?)[01}?{${.3,:1[01},${.5,:0[01}q}{f},.1^[41}.3,.3,.3c"
|
||||
"c]4}.1V0?{.2V0,.0?{.0}{${:7^[00}}_1.3,${.5,@(y12:vector->list)[01},${."
|
||||
"5,@(y12:vector->list)[01},:6^[43}.1p~?{.2,.2e,.1^[41}${.3d,:3^[01}?{.1"
|
||||
"ddg,.3L0?{.3g}{${:7^[00}},.1,.1I-,.0<0?{${:7^[00}}.0,.6A6,.3,.7A8A6A8,"
|
||||
"${:4^,t,.(i10)a,:5^[03},,#0.8,:6,&2{%1@(y13:%25residual-cdr),${n,.4,:1"
|
||||
"a,:0^[03},,#0.2,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_"
|
||||
"1[21}.!0${.(i12),.6,.(i12)dd,:6^[03},${.3^,${.8,,#0.4,.1,&2{%1.0p?{${."
|
||||
"2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.5c,@(y14:%25residual-li"
|
||||
"st)c,@(y13:%25residual-map),@(y5:%25appl)[02}L6](i11)}.2p?{${.5,.5d,.5"
|
||||
"d,:6^[03},.3a,.3a,:6^[43}:7^[40}.!0.0^_1[23},@(y4:%25ccc)[31}.!5.7,.2,"
|
||||
".6,.5,&4{%3,,,#0#1#2:3,&1{%1${${.4,:0[01},@(y6:new-id)[01},.1c]1},${${"
|
||||
".(i10),&1{%1:0,.1A3~]1},t,.(i11),:1^[03},,#0.4,.1,&2{%1.0p?{${.2d,:0^["
|
||||
"01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1.!0${:2^,f,.7,:1^[03}.!1.1,:1,&2"
|
||||
"{%1:1,&1{%1:0^,.1A0]1},t,.2,:0^[13}.!2.5,.5,,#0.8,.4,.2,.8,:0,&5{%2.0,"
|
||||
",#0:0,:1,:2,.6,.4,:3,:4,&7{%1${.2,@(y3:id?)[01}?{:3,.1A3,.0?{.0}{:0,.2"
|
||||
"A3,.0?{.0}{:1^,.3A3}_1}_1d]1}.0V0?{${${.4,@(y12:vector->list)[01},:2^["
|
||||
"01}X1]1}.0p?{${.2d,:6^[01}?{${.2a,:5^[01},,,#0#1:3,&1{%1:0,.1A3d]1}.!0"
|
||||
".2,.4,:4,&3{%!0${.2,:2,@(y14:%25residual-cons),@(y13:%25residual-map)["
|
||||
"03},:1a,:0^[12}.!1.0^,${.5,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[0"
|
||||
"1}c]1}n]1}.!0.0^_1[01}_1,${.6dd,:2^[01},${.3,.6^c,@(y13:%25residual-ma"
|
||||
"p),@(y5:%25appl)[02}L6]5}${.2d,:2^[01},${.3a,:2^[01}c]1}.0]1}.!0.0^_1["
|
||||
"21}.!0.0^_1[62}.!6.(i10),.7,.7,&3{%2:2,,#0:0,.3,.5,:1,.4,&5{%1.0u?{${:"
|
||||
"3,'(s14:invalid syntax),'(y9:transform),@(y5:error)[03}}.0a,.0a,.1da,$"
|
||||
"{:2,:3,.5,:4^[03},.0?{.0,.0,.3,.5,:1^[63}.4d,:0^[51}.!0.0^_1[21}](i11)"
|
||||
"}@!(y13:syntax-rules*)",
|
||||
"}?{.2,.1c]3}.2]3}.0V0?{.2,.2,.2X0,:1^[33}.0p?{${.2d,:2^[01}?{${.4,.4,."
|
||||
"4dd,:1^[03},t,.2a,:1^[33}${.4,.4,.4d,:1^[03},.2,.2a,:1^[33}.2]3}.!0.0^"
|
||||
"_1[33}.!4.4,.2,.4,.3,.(i11),&5{%3.1,.1,.4,:0,:1,:2,:3,:4,&8{%1,#0.1,&1"
|
||||
"{%0f,:0[01}.!0n,:7,:6,,#0.4,.1,:0,:1,:2,:3,:4,:5,&8{%3,#0:7,.4,&2{%1.0"
|
||||
"?{:0]1}:1^[10}.!0${.3,@(y3:id?)[01}?{${.3,:2^[01}?{${.4,@(y3:id?)[01}?"
|
||||
"{${.3,:1[01},${.5,:0[01}q}{f},.1^[41}.3,.3,.3cc]4}.1V0?{.2V0,.0?{.0}{$"
|
||||
"{:7^[00}}_1.3,.3X0,.3X0,:6^[43}.1p~?{.2,.2e,.1^[41}${.3d,:3^[01}?{.1dd"
|
||||
"g,.3L0?{.3g}{${:7^[00}},.1,.1I-,.0<0?{${:7^[00}}.0,.6A6,.3,.7A8A6A8,${"
|
||||
":4^,t,.(i10)a,:5^[03},,#0.8,:6,&2{%1@(y13:%25residual-cdr),${n,.4,:1a,"
|
||||
":0^[03},,#0.2,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1["
|
||||
"21}.!0${.(i12),.6,.(i12)dd,:6^[03},${.3^,${.8,,#0.4,.1,&2{%1.0p?{${.2d"
|
||||
",:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.5c,@(y14:%25residual-list"
|
||||
")c,@(y13:%25residual-map),@(y5:%25appl)[02}L6](i11)}.2p?{${.5,.5d,.5d,"
|
||||
":6^[03},.3a,.3a,:6^[43}:7^[40}.!0.0^_1[23},@(y4:%25ccc)[31}.!5.7,.2,.6"
|
||||
",.5,&4{%3,,,#0#1#2:3,&1{%1${${.4,:0[01},@(y6:new-id)[01},.1c]1},${${.("
|
||||
"i10),&1{%1:0,.1A3~]1},t,.(i11),:1^[03},,#0.4,.1,&2{%1.0p?{${.2d,:0^[01"
|
||||
"},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1.!0${:2^,f,.7,:1^[03}.!1.1,:1,&2{%"
|
||||
"1:1,&1{%1:0^,.1A0]1},t,.2,:0^[13}.!2.5,.5,,#0.8,.4,.2,.8,:0,&5{%2.0,,#"
|
||||
"0:0,:1,:2,.6,.4,:3,:4,&7{%1${.2,@(y3:id?)[01}?{:3,.1A3,.0?{.0}{:0,.2A3"
|
||||
",.0?{.0}{:1^,.3A3}_1}_1d]1}.0V0?{${.2X0,:2^[01}X1]1}.0p?{${.2d,:6^[01}"
|
||||
"?{${.2a,:5^[01},,,#0#1:3,&1{%1:0,.1A3d]1}.!0.2,.4,:4,&3{%!0${.2,:2,@(y"
|
||||
"14:%25residual-cons),@(y13:%25residual-map)[03},:1a,:0^[12}.!1.0^,${.5"
|
||||
",,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,$"
|
||||
"{.6dd,:2^[01},${.3,.6^c,@(y13:%25residual-map),@(y5:%25appl)[02}L6]5}$"
|
||||
"{.2d,:2^[01},${.3a,:2^[01}c]1}.0]1}.!0.0^_1[21}.!0.0^_1[62}.!6.(i10),."
|
||||
"7,.7,&3{%2:2,,#0:0,.3,.5,:1,.4,&5{%1.0u?{${:3,'(s14:invalid syntax),'("
|
||||
"y9:transform),@(y5:error)[03}}.0a,.0a,.1da,${:2,:3,.5,:4^[03},.0?{.0,."
|
||||
"0,.3,.5,:1^[63}.4d,:0^[51}.!0.0^_1[21}](i11)}@!(y13:syntax-rules*)",
|
||||
|
||||
0,
|
||||
"${&0{%2,#0${${'(y6:syntax),'(y6:syntax),@(y12:make-binding)[02},@(y6:n"
|
||||
|
|
Loading…
Reference in a new issue