mirror of
https://github.com/false-schemers/skint.git
synced 2024-12-27 21:58:53 +01:00
s.scm library improvements
This commit is contained in:
parent
b564316cf8
commit
c32c9cfe49
5 changed files with 292 additions and 98 deletions
2
i.c
2
i.c
|
@ -931,7 +931,7 @@ define_instruction(vget) {
|
||||||
define_instruction(vput) {
|
define_instruction(vput) {
|
||||||
obj x = spop(), y = spop(); int i;
|
obj x = spop(), y = spop(); int i;
|
||||||
ckv(ac); ckk(x);
|
ckv(ac); ckk(x);
|
||||||
i = fixnum_from_obj(spop());
|
i = fixnum_from_obj(x);
|
||||||
vectorref(ac, i) = y;
|
vectorref(ac, i) = y;
|
||||||
gonexti();
|
gonexti();
|
||||||
}
|
}
|
||||||
|
|
8
i.h
8
i.h
|
@ -316,10 +316,10 @@ declare_instruction(eq, "=", 0, "%eq", 2, INLINED)
|
||||||
declare_instruction(ne, "=!", 0, "%ne", 2, INLINED)
|
declare_instruction(ne, "=!", 0, "%ne", 2, INLINED)
|
||||||
declare_instruction(neg, "-!", 0, "%neg", 1, INLINED)
|
declare_instruction(neg, "-!", 0, "%neg", 1, INLINED)
|
||||||
declare_instruction(abs, "G0", 0, "%abs", 1, INLINED)
|
declare_instruction(abs, "G0", 0, "%abs", 1, INLINED)
|
||||||
declare_instruction(mqu, "G3", 0, "%mqu", 1, INLINED)
|
declare_instruction(mqu, "G3", 0, "%mqu", 2, INLINED)
|
||||||
declare_instruction(mlo, "G4", 0, "%mlo", 1, INLINED)
|
declare_instruction(mlo, "G4", 0, "%mlo", 2, INLINED)
|
||||||
declare_instruction(quo, "G5", 0, "%quo", 1, INLINED)
|
declare_instruction(quo, "G5", 0, "%quo", 2, INLINED)
|
||||||
declare_instruction(rem, "G6", 0, "%rem", 1, INLINED)
|
declare_instruction(rem, "G6", 0, "%rem", 2, INLINED)
|
||||||
declare_instruction(nump, "N0", 0, "%nump", 1, INLINED)
|
declare_instruction(nump, "N0", 0, "%nump", 1, INLINED)
|
||||||
declare_instruction(intp, "N4", 0, "%intp", 1, INLINED)
|
declare_instruction(intp, "N4", 0, "%intp", 1, INLINED)
|
||||||
declare_instruction(nanp, "N5", 0, "%nanp", 1, INLINED)
|
declare_instruction(nanp, "N5", 0, "%nanp", 1, INLINED)
|
||||||
|
|
175
s.c
175
s.c
|
@ -602,7 +602,7 @@ char *s_code[] = {
|
||||||
";l2:y1:_;y18:%25residual-quotient;;",
|
";l2:y1:_;y18:%25residual-quotient;;",
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%2.1,.1,@(y4:%25quo)[22}@!(y18:%25residual-quotient)",
|
"&0{%2.1,.1G5]2}@!(y18:%25residual-quotient)",
|
||||||
|
|
||||||
"remainder",
|
"remainder",
|
||||||
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:y;;l3:y4:%25rem;y1:x;y1:y;;;l"
|
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:y;;l3:y4:%25rem;y1:x;y1:y;;;l"
|
||||||
|
@ -610,7 +610,7 @@ char *s_code[] = {
|
||||||
";;l2:y1:_;y19:%25residual-remainder;;",
|
";;l2:y1:_;y19:%25residual-remainder;;",
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%2.1,.1,@(y4:%25rem)[22}@!(y19:%25residual-remainder)",
|
"&0{%2.1,.1G6]2}@!(y19:%25residual-remainder)",
|
||||||
|
|
||||||
"truncate-quotient",
|
"truncate-quotient",
|
||||||
"l4:y12:syntax-rules;n;l2:py1:_;y4:args;;py8:quotient;y4:args;;;l2:y1:_"
|
"l4:y12:syntax-rules;n;l2:py1:_;y4:args;;py8:quotient;y4:args;;;l2:y1:_"
|
||||||
|
@ -626,7 +626,7 @@ char *s_code[] = {
|
||||||
"2:y1:_;y16:%25residual-modquo;;",
|
"2:y1:_;y16:%25residual-modquo;;",
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%2.1,.1,@(y4:%25mqu)[22}@!(y16:%25residual-modquo)",
|
"&0{%2.1,.1G3]2}@!(y16:%25residual-modquo)",
|
||||||
|
|
||||||
"modulo",
|
"modulo",
|
||||||
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:y;;l3:y4:%25mlo;y1:x;y1:y;;;l"
|
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:y;;l3:y4:%25mlo;y1:x;y1:y;;;l"
|
||||||
|
@ -634,7 +634,7 @@ char *s_code[] = {
|
||||||
"2:y1:_;y16:%25residual-modulo;;",
|
"2:y1:_;y16:%25residual-modulo;;",
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%2.1,.1,@(y4:%25mlo)[22}@!(y16:%25residual-modulo)",
|
"&0{%2.1,.1G4]2}@!(y16:%25residual-modulo)",
|
||||||
|
|
||||||
"floor-quotient",
|
"floor-quotient",
|
||||||
"l4:y12:syntax-rules;n;l2:py1:_;y4:args;;py6:modquo;y4:args;;;l2:y1:_;y"
|
"l4:y12:syntax-rules;n;l2:py1:_;y4:args;;py6:modquo;y4:args;;;l2:y1:_;y"
|
||||||
|
@ -644,6 +644,12 @@ char *s_code[] = {
|
||||||
"l4:y12:syntax-rules;n;l2:py1:_;y4:args;;py6:modulo;y4:args;;;l2:y1:_;y"
|
"l4:y12:syntax-rules;n;l2:py1:_;y4:args;;py6:modulo;y4:args;;;l2:y1:_;y"
|
||||||
"6:modulo;;",
|
"6:modulo;;",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%2.1,.1G4,.2,.2G3,@(y5:%25sdmv)[22}@!(y6:floor/)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%2.1,.1G6,.2,.2G5,@(y5:%25sdmv)[22}@!(y9:truncate/)",
|
||||||
|
|
||||||
"boolean?",
|
"boolean?",
|
||||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y6:%25boolp;y1:x;;;l2:py1:_;"
|
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y6:%25boolp;y1:x;;;l2:py1:_;"
|
||||||
"y12:syntax-rules;;py18:%25residual-boolean?;y12:syntax-rules;;;l2:y1:_"
|
"y12:syntax-rules;;py18:%25residual-boolean?;y12:syntax-rules;;;l2:y1:_"
|
||||||
|
@ -1348,14 +1354,6 @@ char *s_code[] = {
|
||||||
"l5:y1:_;y1:x;y1:y;y1:z;y3:...;;l3:y13:vector-append;y1:x;l4:y13:vector"
|
"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;;",
|
"-append;y1:y;y1:z;y3:...;;;;l2:y1:_;y23:%25residual-vector-append;;",
|
||||||
|
|
||||||
"vector->list",
|
|
||||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25vtol;y1:x;;;l2:py1:_;y"
|
|
||||||
"12:syntax-rules;;py22:%25residual-vector->list;y12:syntax-rules;;;l2:y"
|
|
||||||
"1:_;y22:%25residual-vector->list;;",
|
|
||||||
|
|
||||||
0,
|
|
||||||
"&0{%1.0X0]1}@!(y22:%25residual-vector->list)",
|
|
||||||
|
|
||||||
"list->vector",
|
"list->vector",
|
||||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25ltov;y1:x;;;l2:py1:_;y"
|
"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"
|
"12:syntax-rules;;py22:%25residual-list->vector;y12:syntax-rules;;;l2:y"
|
||||||
|
@ -1364,6 +1362,58 @@ char *s_code[] = {
|
||||||
0,
|
0,
|
||||||
"&0{%1.0X1]1}@!(y22:%25residual-list->vector)",
|
"&0{%1.0X1]1}@!(y22:%25residual-list->vector)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&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)",
|
||||||
|
|
||||||
|
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)",
|
||||||
|
|
||||||
|
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!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%5.4,.4,.4,.4,.4,@(y15:subvector-copy!)[55}%x,&0{%4.2V3,.4,.4,.4,.4"
|
||||||
|
",@(y15:subvector-copy!)[45}%x,&0{%3.2V3,'0,.4,.4,.4,@(y15:subvector-co"
|
||||||
|
"py!)[35}%x,&3{|30|41|52%%}@!(y12:vector-copy!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%3f,.2,.4I-V2,${.5,.5,.5,'0,.6,@(y15:subvector-copy!)[05}.0]4}@!(y9"
|
||||||
|
":subvector)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%3.2,.2,.2,@(y9:subvector)[33}%x,&0{%2.0V3,.2,.2,@(y9:subvector)[23"
|
||||||
|
"}%x,&0{%1.0V3,'0,.2,@(y9:subvector)[13}%x,&3{|10|21|32%%}@!(y11:vector"
|
||||||
|
"-copy)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%4.2,,#0.5,.4,.4,.3,&4{%1:3,.1I<!,.0?{.0]2}:2,.2,:1V5.1'1,.2I+,:0^["
|
||||||
|
"21}.!0.0^_1[41}@!(y15:subvector-fill!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%4.3,.3,.3,.3,@(y15:subvector-fill!)[44}%x,&0{%3.0V3,.3,.3,.3,@(y15"
|
||||||
|
":subvector-fill!)[34}%x,&0{%2.0V3,'0,.3,.3,@(y15:subvector-fill!)[24}%"
|
||||||
|
"x,&3{|20|31|42%%}@!(y12:vector-fill!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%5.1,.1S3I-,.4I+,.5In,.4,.3,,#0.0,.5,.8,.6,&4{%2:0,.2I<!?{:2]2}.1,:"
|
||||||
|
"1V4,.1,:2S5.1'1,.2I+,.1'1,.2I+,:3^[22}.!0.0^_1[62}@!(y22:subvector-str"
|
||||||
|
"ing-copy!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%3.2,.2,.2,'0,'(c ),.6,.8I-S2,@(y22:subvector-string-copy!)[35}@!(y"
|
||||||
|
"17:subvector->string)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%3.2,.2,.2,@(y17:subvector->string)[33}%x,&0{%2.0V3,.2,.2,@(y17:sub"
|
||||||
|
"vector->string)[23}%x,&0{%1.0V3,'0,.2,@(y17:subvector->string)[13}%x,&"
|
||||||
|
"3{|10|21|32%%}@!(y14:vector->string)",
|
||||||
|
|
||||||
"string?",
|
"string?",
|
||||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25strp;y1:x;;;l2:py1:_;y"
|
"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"
|
"12:syntax-rules;;py17:%25residual-string?;y12:syntax-rules;;;l2:y1:_;y"
|
||||||
|
@ -1411,6 +1461,34 @@ char *s_code[] = {
|
||||||
"y1:y;y1:z;y3:...;;l3:y13:string-append;y1:x;l4:y13:string-append;y1:y;"
|
"y1:y;y1:z;y3:...;;l3:y13:string-append;y1:x;l4:y13:string-append;y1:y;"
|
||||||
"y1:z;y3:...;;;;l2:y1:_;y23:%25residual-string-append;;",
|
"y1:z;y3:...;;;;l2:y1:_;y23:%25residual-string-append;;",
|
||||||
|
|
||||||
|
"list->string",
|
||||||
|
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25ltos;y1:x;;;l2:py1:_;y"
|
||||||
|
"12:syntax-rules;;py22:%25residual-list->string;y12:syntax-rules;;;l2:y"
|
||||||
|
"1:_;y22:%25residual-list->string;;",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%1.0X3]1}@!(y22:%25residual-list->string)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&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)",
|
||||||
|
|
||||||
|
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)",
|
||||||
|
|
||||||
|
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!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%5.4,.4,.4,.4,.4,@(y15:substring-copy!)[55}%x,&0{%4.2S3,.4,.4,.4,.4"
|
||||||
|
",@(y15:substring-copy!)[45}%x,&0{%3.2S3,'0,.4,.4,.4,@(y15:substring-co"
|
||||||
|
"py!)[35}%x,&3{|30|41|52%%}@!(y12:string-copy!)",
|
||||||
|
|
||||||
"substring",
|
"substring",
|
||||||
"l5:y12:syntax-rules;n;l2:l4:y1:_;y1:x;y1:s;y1:e;;l4:y5:%25ssub;y1:x;y1"
|
"l5:y12:syntax-rules;n;l2:l4:y1:_;y1:x;y1:s;y1:e;;l4:y5:%25ssub;y1:x;y1"
|
||||||
":s;y1:e;;;l2:py1:_;y12:syntax-rules;;py19:%25residual-substring;y12:sy"
|
":s;y1:e;;;l2:py1:_;y12:syntax-rules;;py19:%25residual-substring;y12:sy"
|
||||||
|
@ -1419,6 +1497,33 @@ char *s_code[] = {
|
||||||
0,
|
0,
|
||||||
"&0{%3.2,.2,.2S7]3}@!(y19:%25residual-substring)",
|
"&0{%3.2,.2,.2S7]3}@!(y19:%25residual-substring)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%3.2,.2,.2S7]3}%x,&0{%2.0S3,.2,.2S7]2}%x,&0{%1.0S3,'0,.2S7]1}%x,&3{"
|
||||||
|
"|10|21|32%%}@!(y11:string-copy)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%4.2,,#0.5,.4,.4,.3,&4{%1:3,.1I<!,.0?{.0]2}:2,.2,:1S5.1'1,.2I+,:0^["
|
||||||
|
"21}.!0.0^_1[41}@!(y15:substring-fill!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%4.3,.3,.3,.3,@(y15:substring-fill!)[44}%x,&0{%3.0S3,.3,.3,.3,@(y15"
|
||||||
|
":substring-fill!)[34}%x,&0{%2.0S3,'0,.3,.3,@(y15:substring-fill!)[24}%"
|
||||||
|
"x,&3{|20|31|42%%}@!(y12:string-fill!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%5.1,.1V3I-,.4I+,.5In,.4,.3,,#0.0,.5,.8,.6,&4{%2:0,.2I<!?{:2]2}.1,:"
|
||||||
|
"1S4,.1,:2V5.1'1,.2I+,.1'1,.2I+,:3^[22}.!0.0^_1[62}@!(y22:substring-vec"
|
||||||
|
"tor-copy!)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%3.2,.2,.2,'0,f,.6,.8I-V2,@(y22:substring-vector-copy!)[35}@!(y17:s"
|
||||||
|
"ubstring->vector)",
|
||||||
|
|
||||||
|
0,
|
||||||
|
"&0{%3.2,.2,.2,@(y17:substring->vector)[33}%x,&0{%2.0S3,.2,.2,@(y17:sub"
|
||||||
|
"string->vector)[23}%x,&0{%1.0S3,'0,.2,@(y17:substring->vector)[13}%x,&"
|
||||||
|
"3{|10|21|32%%}@!(y14:string->vector)",
|
||||||
|
|
||||||
"string-cmp",
|
"string-cmp",
|
||||||
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:y;;l3:y5:%25scmp;y1:x;y1:y;;;"
|
"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"
|
"l2:py1:_;y12:syntax-rules;;py20:%25residual-string-cmp;y12:syntax-rule"
|
||||||
|
@ -1515,22 +1620,6 @@ char *s_code[] = {
|
||||||
0,
|
0,
|
||||||
"&0{%2.1,.1Si<!]2}@!(y19:%25residual-string>=?)",
|
"&0{%2.1,.1Si<!]2}@!(y19:%25residual-string>=?)",
|
||||||
|
|
||||||
"string->list",
|
|
||||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25stol;y1:x;;;l2:py1:_;y"
|
|
||||||
"12:syntax-rules;;py22:%25residual-string->list;y12:syntax-rules;;;l2:y"
|
|
||||||
"1:_;y22:%25residual-string->list;;",
|
|
||||||
|
|
||||||
0,
|
|
||||||
"&0{%1.0X2]1}@!(y22:%25residual-string->list)",
|
|
||||||
|
|
||||||
"list->string",
|
|
||||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y5:%25ltos;y1:x;;;l2:py1:_;y"
|
|
||||||
"12:syntax-rules;;py22:%25residual-list->string;y12:syntax-rules;;;l2:y"
|
|
||||||
"1:_;y22:%25residual-list->string;;",
|
|
||||||
|
|
||||||
0,
|
|
||||||
"&0{%1.0X3]1}@!(y22:%25residual-list->string)",
|
|
||||||
|
|
||||||
"fixnum->string",
|
"fixnum->string",
|
||||||
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:r;;l3:y5:%25itos;y1:x;y1:r;;;"
|
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:x;y1:r;;l3:y5:%25itos;y1:x;y1:r;;;"
|
||||||
"l2:py1:_;y12:syntax-rules;;py24:%25residual-fixnum->string;y12:syntax-"
|
"l2:py1:_;y12:syntax-rules;;py24:%25residual-fixnum->string;y12:syntax-"
|
||||||
|
@ -1621,31 +1710,29 @@ char *s_code[] = {
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%!2.0u?{.2S3,'(c ),.1S2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${"
|
"&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}${@(y22:%25residual"
|
".2,:2S4,:1[01},.1,:3S5.0'1,.1I+,:4^[11}.!0.0^_1[51}${@(y12:string->lis"
|
||||||
"-string->list),${.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c"
|
"t),${.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0"
|
||||||
"]1}n]1}.!0.0^_1[01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X3]3"
|
"^_1[01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X3]3}@!(y10:stri"
|
||||||
"}@!(y10:string-map)",
|
"ng-map)",
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%!2.0u?{.2V3,f,.1V2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${.2,:"
|
"&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}${@(y22:%25residual-vec"
|
"2V4,:1[01},.1,:3V5.0'1,.1I+,:4^[11}.!0.0^_1[51}${@(y12:vector->list),$"
|
||||||
"tor->list),${.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n"
|
"{.5,.8c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1["
|
||||||
"]1}.!0.0^_1[01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X1]3}@!("
|
"01}_1,.4c,@(y13:%25residual-map),@(y5:%25appl)[02}X1]3}@!(y10:vector-m"
|
||||||
"y10:vector-map)",
|
"ap)",
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%!2.0u?{.2S3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2S4,:1["
|
"&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}@(y22:%25residual-string->list),${.3,."
|
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}@(y12:string->list),${.3,.6c,,#0.4,.1,"
|
||||||
"6c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1"
|
"&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.2c,@(y18:%"
|
||||||
",.2c,@(y18:%25residual-for-each),@(y5:%25appl)[32}@!(y15:string-for-ea"
|
"25residual-for-each),@(y5:%25appl)[32}@!(y15:string-for-each)",
|
||||||
"ch)",
|
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%!2.0u?{.2V3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2V4,:1["
|
"&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}@(y22:%25residual-vector->list),${.3,."
|
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}@(y12:vector->list),${.3,.6c,,#0.4,.1,"
|
||||||
"6c,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1"
|
"&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.2c,@(y18:%"
|
||||||
",.2c,@(y18:%25residual-for-each),@(y5:%25appl)[32}@!(y15:vector-for-ea"
|
"25residual-for-each),@(y5:%25appl)[32}@!(y15:vector-for-each)",
|
||||||
"ch)",
|
|
||||||
|
|
||||||
"input-port?",
|
"input-port?",
|
||||||
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y4:%25ipp;y1:x;;;l2:py1:_;y1"
|
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;l2:y4:%25ipp;y1:x;;;l2:py1:_;y1"
|
||||||
|
|
141
src/s.scm
141
src/s.scm
|
@ -265,8 +265,11 @@
|
||||||
(define-syntax floor-quotient modquo)
|
(define-syntax floor-quotient modquo)
|
||||||
(define-syntax floor-remainder modulo)
|
(define-syntax floor-remainder modulo)
|
||||||
|
|
||||||
;floor/
|
(define (floor/ x y)
|
||||||
;truncate/
|
(%sdmv (floor-quotient x y) (floor-remainder x y)))
|
||||||
|
|
||||||
|
(define (truncate/ x y)
|
||||||
|
(%sdmv (truncate-quotient x y) (truncate-remainder x y)))
|
||||||
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------------------------------
|
;---------------------------------------------------------------------------------------------
|
||||||
|
@ -492,16 +495,68 @@
|
||||||
[(_ x y z ...) (vector-append x (vector-append y z ...))]
|
[(_ x y z ...) (vector-append x (vector-append y z ...))]
|
||||||
[_ %residual-vector-append]))
|
[_ %residual-vector-append]))
|
||||||
|
|
||||||
(define-inline (vector->list x) %residual-vector->list (%vtol x))
|
|
||||||
|
|
||||||
(define-inline (list->vector x) %residual-list->vector (%ltov x))
|
(define-inline (list->vector x) %residual-list->vector (%ltov x))
|
||||||
|
|
||||||
;vector->list/1/2/3
|
(define (subvector->list vec start end)
|
||||||
;vector-copy/1/2/3=subvector
|
(let loop ([i (fx- end 1)] [l '()])
|
||||||
;vector-copy!/2/3/4/5 (to at from start end)
|
(if (fx<? i start) l (loop (fx- i 1) (cons (vector-ref vec i) l)))))
|
||||||
;vector-fill!/2/3/4 (vector val start end)
|
|
||||||
;vector->string/1/2/3
|
(define vector->list
|
||||||
;string->vector/1/2/3
|
(case-lambda
|
||||||
|
[(vec) (%vtol vec)]
|
||||||
|
[(vec start) (subvector->list vec start (vector-length vec))]
|
||||||
|
[(vec start end) (subvector->list vec start end)]))
|
||||||
|
|
||||||
|
(define (subvector-copy! to at from start end)
|
||||||
|
(let ([limit (fxmin end (fx+ start (fx- (vector-length to) at)))])
|
||||||
|
(if (fx<=? at start)
|
||||||
|
(do ([i at (fx+ i 1)] [j start (fx+ j 1)])
|
||||||
|
[(fx>=? j limit)]
|
||||||
|
(vector-set! to i (vector-ref from j)))
|
||||||
|
(do ([i (fx+ at (fx- (fx- end start) 1)) (fx- i 1)] [j (fx- limit 1) (fx- j 1)])
|
||||||
|
[(fx<? j start)]
|
||||||
|
(vector-set! to i (vector-ref from j))))))
|
||||||
|
|
||||||
|
(define vector-copy!
|
||||||
|
(case-lambda
|
||||||
|
[(to at from) (subvector-copy! to at from 0 (vector-length from))]
|
||||||
|
[(to at from start) (subvector-copy! to at from start (vector-length from))]
|
||||||
|
[(to at from start end) (subvector-copy! to at from start end)]))
|
||||||
|
|
||||||
|
(define (subvector vec start end) ; TODO: %vsub?
|
||||||
|
(let ([v (make-vector (fx- end start))])
|
||||||
|
(subvector-copy! v 0 vec start end)
|
||||||
|
v))
|
||||||
|
|
||||||
|
(define vector-copy
|
||||||
|
(case-lambda
|
||||||
|
[(vec) (subvector vec 0 (vector-length vec))] ; TODO: %vcpy ?
|
||||||
|
[(vec start) (subvector vec start (vector-length vec))]
|
||||||
|
[(vec start end) (subvector vec start end)]))
|
||||||
|
|
||||||
|
(define (subvector-fill! vec x start end)
|
||||||
|
(do ([i start (fx+ i 1)]) [(fx>=? i end)] (vector-set! vec i x)))
|
||||||
|
|
||||||
|
(define vector-fill!
|
||||||
|
(case-lambda
|
||||||
|
[(vec x) (subvector-fill! vec x 0 (vector-length vec))]
|
||||||
|
[(vec x start) (subvector-fill! vec x start (vector-length vec))]
|
||||||
|
[(vec x start end) (subvector-fill! vec x start end)]))
|
||||||
|
|
||||||
|
(define (subvector-string-copy! to at from start end)
|
||||||
|
(let ([limit (fxmin end (fx+ start (fx- (string-length to) at)))])
|
||||||
|
(do ([i at (fx+ i 1)] [j start (fx+ j 1)])
|
||||||
|
[(fx>=? j limit) to]
|
||||||
|
(string-set! to i (vector-ref from j)))))
|
||||||
|
|
||||||
|
(define (subvector->string vec start end)
|
||||||
|
(subvector-string-copy! (make-string (fx- end start)) 0 vec start end))
|
||||||
|
|
||||||
|
(define vector->string
|
||||||
|
(case-lambda
|
||||||
|
[(vec) (subvector->string vec 0 (vector-length vec))]
|
||||||
|
[(vec start) (subvector->string vec start (vector-length vec))]
|
||||||
|
[(vec start end) (subvector->string vec start end)]))
|
||||||
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------------------------------
|
;---------------------------------------------------------------------------------------------
|
||||||
|
@ -535,8 +590,66 @@
|
||||||
[(_ x y z ...) (string-append x (string-append y z ...))]
|
[(_ x y z ...) (string-append x (string-append y z ...))]
|
||||||
[_ %residual-string-append]))
|
[_ %residual-string-append]))
|
||||||
|
|
||||||
|
(define-inline (list->string x) %residual-list->string (%ltos x))
|
||||||
|
|
||||||
|
(define (substring->list str start end)
|
||||||
|
(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
|
||||||
|
(case-lambda
|
||||||
|
[(str) (%stol str)]
|
||||||
|
[(str start) (substring->list str start (string-length str))]
|
||||||
|
[(str start end) (substring->list str start end)]))
|
||||||
|
|
||||||
|
(define (substring-copy! to at from start end)
|
||||||
|
(let ([limit (fxmin end (fx+ start (fx- (string-length to) at)))])
|
||||||
|
(if (fx<=? at start)
|
||||||
|
(do ([i at (fx+ i 1)] [j start (fx+ j 1)])
|
||||||
|
[(fx>=? j limit)]
|
||||||
|
(string-set! to i (string-ref from j)))
|
||||||
|
(do ([i (fx+ at (fx- (fx- end start) 1)) (fx- i 1)] [j (fx- limit 1) (fx- j 1)])
|
||||||
|
[(fx<? j start)]
|
||||||
|
(string-set! to i (string-ref from j))))))
|
||||||
|
|
||||||
|
(define string-copy!
|
||||||
|
(case-lambda
|
||||||
|
[(to at from) (substring-copy! to at from 0 (string-length from))]
|
||||||
|
[(to at from start) (substring-copy! to at from start (string-length from))]
|
||||||
|
[(to at from start end) (substring-copy! to at from start end)]))
|
||||||
|
|
||||||
(define-inline (substring x s e) %residual-substring (%ssub x s e))
|
(define-inline (substring x s e) %residual-substring (%ssub x s e))
|
||||||
|
|
||||||
|
(define string-copy
|
||||||
|
(case-lambda
|
||||||
|
[(str) (substring str 0 (string-length str))] ; TODO: %scpy ?
|
||||||
|
[(str start) (substring str start (string-length str))]
|
||||||
|
[(str start end) (substring str start end)]))
|
||||||
|
|
||||||
|
(define (substring-fill! str c start end)
|
||||||
|
(do ([i start (fx+ i 1)]) [(fx>=? i end)] (string-set! str i c)))
|
||||||
|
|
||||||
|
(define string-fill!
|
||||||
|
(case-lambda
|
||||||
|
[(str c) (substring-fill! str c 0 (string-length str))]
|
||||||
|
[(str c start) (substring-fill! str c start (string-length str))]
|
||||||
|
[(str c start end) (substring-fill! str c start end)]))
|
||||||
|
|
||||||
|
(define (substring-vector-copy! to at from start end)
|
||||||
|
(let ([limit (fxmin end (fx+ start (fx- (vector-length to) at)))])
|
||||||
|
(do ([i at (fx+ i 1)] [j start (fx+ j 1)])
|
||||||
|
[(fx>=? j limit) to]
|
||||||
|
(vector-set! to i (string-ref from j)))))
|
||||||
|
|
||||||
|
(define (substring->vector str start end)
|
||||||
|
(substring-vector-copy! (make-vector (fx- end start)) 0 str start end))
|
||||||
|
|
||||||
|
(define string->vector
|
||||||
|
(case-lambda
|
||||||
|
[(str) (substring->vector str 0 (string-length str))]
|
||||||
|
[(str start) (substring->vector str start (string-length str))]
|
||||||
|
[(str start end) (substring->vector str start end)]))
|
||||||
|
|
||||||
(define-inline (string-cmp x y) %residual-string-cmp (%scmp x y))
|
(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<? (%seq x y))
|
||||||
(define-inline (string<? x y) %residual-string<? (%slt x y))
|
(define-inline (string<? x y) %residual-string<? (%slt x y))
|
||||||
|
@ -550,17 +663,9 @@
|
||||||
(define-inline (string-ci>? x y) %residual-string>? (%sigt x y))
|
(define-inline (string-ci>? x y) %residual-string>? (%sigt x y))
|
||||||
(define-inline (string-ci>=? x y) %residual-string>=? (%sige x y))
|
(define-inline (string-ci>=? x y) %residual-string>=? (%sige x y))
|
||||||
|
|
||||||
(define-inline (string->list x) %residual-string->list (%stol x))
|
|
||||||
|
|
||||||
(define-inline (list->string x) %residual-list->string (%ltos x))
|
|
||||||
|
|
||||||
;string-upcase
|
;string-upcase
|
||||||
;string-downcase
|
;string-downcase
|
||||||
;string-foldcase
|
;string-foldcase
|
||||||
;string->list/1/2/3
|
|
||||||
;string-copy/1/2/3=substring
|
|
||||||
;string-copy!/2/3/4/5 (to at from start end)
|
|
||||||
;string-fill!/2/3/4 (string v start end)
|
|
||||||
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------------------------------
|
;---------------------------------------------------------------------------------------------
|
||||||
|
|
64
t.c
64
t.c
|
@ -153,9 +153,9 @@ char *t_code[] = {
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%2${.2,,#0.0,&1{%1${.2,@(y3:id?)[01}?{.0,@(y7:id->sym)[11}.0p?{${.2"
|
"&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^,${.3X0,,#0.4,.1,&2{%1.0p?{${.2d,:"
|
"d,:0^[01},${.3a,:0^[01}c]1}.0V0?{:0^,${${.5,@(y12:vector->list)[01},,#"
|
||||||
"0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1X1]1}.0]1}.!0.0^_1[01},'(y5:q"
|
"0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1X1]1}"
|
||||||
"uote),l2]2}@!(y11:xform-quote)",
|
".0]1}.!0.0^_1[01},'(y5:quote),l2]2}@!(y11:xform-quote)",
|
||||||
|
|
||||||
0,
|
0,
|
||||||
"&0{%2${.2,.4[01},.0Y0?{.0,'(y3:ref),l2]3}.0,@(y11:binding-val)[31}@!(y"
|
"&0{%2${.2,.4[01},.0Y0?{.0,'(y3:ref),l2]3}.0,@(y11:binding-val)[31}@!(y"
|
||||||
|
@ -274,34 +274,36 @@ 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"
|
"}.!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."
|
"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,&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,.2X0,:1^[33}.0p?{${.2d,:2^[01}?{${.4,.4,."
|
"}?{.2,.1c]3}.2]3}.0V0?{.2,.2,${.4,@(y12:vector->list)[01},:1^[33}.0p?{"
|
||||||
"4dd,:1^[03},t,.2a,:1^[33}${.4,.4,.4d,:1^[03},.2,.2a,:1^[33}.2]3}.!0.0^"
|
"${.2d,:2^[01}?{${.4,.4,.4dd,:1^[03},t,.2a,:1^[33}${.4,.4,.4d,:1^[03},."
|
||||||
"_1[33}.!4.4,.2,.4,.3,.(i11),&5{%3.1,.1,.4,:0,:1,:2,:3,:4,&8{%1,#0.1,&1"
|
"2,.2a,:1^[33}.2]3}.!0.0^_1[33}.!4.4,.2,.4,.3,.(i11),&5{%3.1,.1,.4,:0,:"
|
||||||
"{%0f,:0[01}.!0n,:7,:6,,#0.4,.1,:0,:1,:2,:3,:4,:5,&8{%3,#0:7,.4,&2{%1.0"
|
"1,:2,:3,:4,&8{%1,#0.1,&1{%0f,:0[01}.!0n,:7,:6,,#0.4,.1,:0,:1,:2,:3,:4,"
|
||||||
"?{:0]1}:1^[10}.!0${.3,@(y3:id?)[01}?{${.3,:2^[01}?{${.4,@(y3:id?)[01}?"
|
":5,&8{%3,#0:7,.4,&2{%1.0?{:0]1}:1^[10}.!0${.3,@(y3:id?)[01}?{${.3,:2^["
|
||||||
"{${.3,:1[01},${.5,:0[01}q}{f},.1^[41}.3,.3,.3cc]4}.1V0?{.2V0,.0?{.0}{$"
|
"01}?{${.4,@(y3:id?)[01}?{${.3,:1[01},${.5,:0[01}q}{f},.1^[41}.3,.3,.3c"
|
||||||
"{:7^[00}}_1.3,.3X0,.3X0,:6^[43}.1p~?{.2,.2e,.1^[41}${.3d,:3^[01}?{.1dd"
|
"c]4}.1V0?{.2V0,.0?{.0}{${:7^[00}}_1.3,${.5,@(y12:vector->list)[01},${."
|
||||||
"g,.3L0?{.3g}{${:7^[00}},.1,.1I-,.0<0?{${:7^[00}}.0,.6A6,.3,.7A8A6A8,${"
|
"5,@(y12:vector->list)[01},:6^[43}.1p~?{.2,.2e,.1^[41}${.3d,:3^[01}?{.1"
|
||||||
":4^,t,.(i10)a,:5^[03},,#0.8,:6,&2{%1@(y13:%25residual-cdr),${n,.4,:1a,"
|
"ddg,.3L0?{.3g}{${:7^[00}},.1,.1I-,.0<0?{${:7^[00}}.0,.6A6,.3,.7A8A6A8,"
|
||||||
":0^[03},,#0.2,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1["
|
"${:4^,t,.(i10)a,:5^[03},,#0.8,:6,&2{%1@(y13:%25residual-cdr),${n,.4,:1"
|
||||||
"21}.!0${.(i12),.6,.(i12)dd,:6^[03},${.3^,${.8,,#0.4,.1,&2{%1.0p?{${.2d"
|
"a,:0^[03},,#0.2,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_"
|
||||||
",:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.5c,@(y14:%25residual-list"
|
"1[21}.!0${.(i12),.6,.(i12)dd,:6^[03},${.3^,${.8,,#0.4,.1,&2{%1.0p?{${."
|
||||||
")c,@(y13:%25residual-map),@(y5:%25appl)[02}L6](i11)}.2p?{${.5,.5d,.5d,"
|
"2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,.5c,@(y14:%25residual-li"
|
||||||
":6^[03},.3a,.3a,:6^[43}:7^[40}.!0.0^_1[23},@(y4:%25ccc)[31}.!5.7,.2,.6"
|
"st)c,@(y13:%25residual-map),@(y5:%25appl)[02}L6](i11)}.2p?{${.5,.5d,.5"
|
||||||
",.5,&4{%3,,,#0#1#2:3,&1{%1${${.4,:0[01},@(y6:new-id)[01},.1c]1},${${.("
|
"d,:6^[03},.3a,.3a,:6^[43}:7^[40}.!0.0^_1[23},@(y4:%25ccc)[31}.!5.7,.2,"
|
||||||
"i10),&1{%1:0,.1A3~]1},t,.(i11),:1^[03},,#0.4,.1,&2{%1.0p?{${.2d,:0^[01"
|
".6,.5,&4{%3,,,#0#1#2:3,&1{%1${${.4,:0[01},@(y6:new-id)[01},.1c]1},${${"
|
||||||
"},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1.!0${:2^,f,.7,:1^[03}.!1.1,:1,&2{%"
|
".(i10),&1{%1:0,.1A3~]1},t,.(i11),:1^[03},,#0.4,.1,&2{%1.0p?{${.2d,:0^["
|
||||||
"1:1,&1{%1:0^,.1A0]1},t,.2,:0^[13}.!2.5,.5,,#0.8,.4,.2,.8,:0,&5{%2.0,,#"
|
"01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1.!0${:2^,f,.7,:1^[03}.!1.1,:1,&2"
|
||||||
"0:0,:1,:2,.6,.4,:3,:4,&7{%1${.2,@(y3:id?)[01}?{:3,.1A3,.0?{.0}{:0,.2A3"
|
"{%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^,.3A3}_1}_1d]1}.0V0?{${.2X0,:2^[01}X1]1}.0p?{${.2d,:6^[01}"
|
",#0:0,:1,:2,.6,.4,:3,:4,&7{%1${.2,@(y3:id?)[01}?{:3,.1A3,.0?{.0}{:0,.2"
|
||||||
"?{${.2a,:5^[01},,,#0#1:3,&1{%1:0,.1A3d]1}.!0.2,.4,:4,&3{%!0${.2,:2,@(y"
|
"A3,.0?{.0}{:1^,.3A3}_1}_1d]1}.0V0?{${${.4,@(y12:vector->list)[01},:2^["
|
||||||
"14:%25residual-cons),@(y13:%25residual-map)[03},:1a,:0^[12}.!1.0^,${.5"
|
"01}X1]1}.0p?{${.2d,:6^[01}?{${.2a,:5^[01},,,#0#1:3,&1{%1:0,.1A3d]1}.!0"
|
||||||
",,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[01}c]1}n]1}.!0.0^_1[01}_1,$"
|
".2,.4,:4,&3{%!0${.2,:2,@(y14:%25residual-cons),@(y13:%25residual-map)["
|
||||||
"{.6dd,:2^[01},${.3,.6^c,@(y13:%25residual-map),@(y5:%25appl)[02}L6]5}$"
|
"03},:1a,:0^[12}.!1.0^,${.5,,#0.4,.1,&2{%1.0p?{${.2d,:0^[01},${.3a,:1[0"
|
||||||
"{.2d,:2^[01},${.3a,:2^[01}c]1}.0]1}.!0.0^_1[21}.!0.0^_1[62}.!6.(i10),."
|
"1}c]1}n]1}.!0.0^_1[01}_1,${.6dd,:2^[01},${.3,.6^c,@(y13:%25residual-ma"
|
||||||
"7,.7,&3{%2:2,,#0:0,.3,.5,:1,.4,&5{%1.0u?{${:3,'(s14:invalid syntax),'("
|
"p),@(y5:%25appl)[02}L6]5}${.2d,:2^[01},${.3a,:2^[01}c]1}.0]1}.!0.0^_1["
|
||||||
"y9:transform),@(y5:error)[03}}.0a,.0a,.1da,${:2,:3,.5,:4^[03},.0?{.0,."
|
"21}.!0.0^_1[62}.!6.(i10),.7,.7,&3{%2:2,,#0:0,.3,.5,:1,.4,&5{%1.0u?{${:"
|
||||||
"0,.3,.5,:1^[63}.4d,:0^[51}.!0.0^_1[21}](i11)}@!(y13:syntax-rules*)",
|
"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,
|
||||||
"${&0{%2,#0${${'(y6:syntax),'(y6:syntax),@(y12:make-binding)[02},@(y6:n"
|
"${&0{%2,#0${${'(y6:syntax),'(y6:syntax),@(y12:make-binding)[02},@(y6:n"
|
||||||
|
|
Loading…
Reference in a new issue