diff --git a/src/examples/annotated-structs.rla b/src/examples/annotated-structs.rla index 0e18365..568a46b 100644 --- a/src/examples/annotated-structs.rla +++ b/src/examples/annotated-structs.rla @@ -1,30 +1,30 @@ -#S(#="lambda" - #( +#@#S(#="lambda" + #@#( ( - #0=#S(#="structure" + #@#0=#S(#="structure" (#="structure") 5 #f ) - #1=#S(#=0 + #@#1=#S(#=0 (#="structure") 5 #f - "annotated-structure" - #( - "supers" - "nslots" - "callable" - "name" - "slot-names" + #@"annotated-structure" + #@#( + #@"supers" + #@"nslots" + #@"callable" + #@"name" + #@"slot-names" ) ) - #2=#S(#=1 + #@#2=#S(#=1 (#="lambda") 8 #f - "annotated-lambda" - #( + #@"annotated-lambda" + #@#( "global-vars" "instance-vars" "frame-vars" @@ -36,17 +36,17 @@ ) ) ) - #S(#=2 - #(("OK") #f) - #() + #@#S(#=2 + #@#(("OK") #f) + #@#() 0 - "" - "\xff\x01\x00\x00\x02\x02" + #@"" + #@"\xff\x01\x00\x00\x02\x02" ) ) - #() + #@#() 0 - "" - "\x02\xfd\xfe\xff" + #@"" + #@"\x02\xfd\xfe\xff" ) ; vim:set syntax= sw=3 expandtab: diff --git a/src/examples/factorial.rla b/src/examples/factorial.rla index be6b019..6341239 100755 --- a/src/examples/factorial.rla +++ b/src/examples/factorial.rla @@ -3,30 +3,30 @@ ; (lambda (number-string) ; (fact (string->number number-string))) -#S(#="lambda" +#@#S(#="lambda" ; (lambda (number-string) ; (let/cc k ; (call-with-values ; (lambda () (string->number number-string)) ; (lambda (n) (k (fact n)))))) - #( + #@#( #="string->number" - #S(#="template" + #@#S(#="template" ; (let/cc k ; (lambda (n) ; (k (fact n)))) - #( + #@#( #i"../lib/math/fact.rla" ) - "\xfe\xff" ; ctx k + #@"\xfe\xff" ; ctx k 0 - "" - "\x01\xfb\x00\x00\x40\x41" + #@"" + #@"\x01\xfb\x00\x00\x40\x41" ) ) - #() + #@#() 0 - "" - "\x01\xfb\x00\x00\xfe\x02" + #@"" + #@"\x01\xfb\x00\x00\xfe\x02" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-and.rla b/src/examples/test-and.rla index 3d07493..22e87ae 100644 --- a/src/examples/test-and.rla +++ b/src/examples/test-and.rla @@ -1,23 +1,23 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-and) ; (and (lambda () 3) ; (lambda () #t) ; (lambda () 4) ; (lambda () #f) ; (lambda () 5))) - #( + #@#( #i"../lib/primitive/and.rla" ( - #S(#="lambda" #(( 3) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #((#t) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #(( 4) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #((#f) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #(( 5) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#(( 3) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#((#t) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#(( 4) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#((#f) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#(( 5) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") ) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-append.rla b/src/examples/test-append.rla index d229fb2..bb5de7c 100644 --- a/src/examples/test-append.rla +++ b/src/examples/test-append.rla @@ -1,13 +1,13 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-append) ; (append '(1 2 3) (4 5) (6 7 8 9))) - #( + #@#( #i"../lib/primitive/append.rla" ((1 2 3) (4 5) (6 7 8 9)) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-foldl.rla b/src/examples/test-foldl.rla index 4d7f265..896b910 100644 --- a/src/examples/test-foldl.rla +++ b/src/examples/test-foldl.rla @@ -1,29 +1,29 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-foldl) ; (foldl + 0 '(2 3 4 5))) - #( + #@#( #i"../lib/primitive/foldl.rla" ( - #S(#="lambda" + #@#S(#="lambda" ; (define (+ x y) ; (fix+ x y)) - #(#f) - #() + #@#(#f) + #@#() 2 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x00\x81\x04\xfb\; (set! f1 (cdr argv)) - \x00\x81\x03\x81\; (set! f1 (car f1)) - \x08\x80\x80\x81\; (set! f0 (fix+ f0 f1)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\xff\x80\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x00\x81\x04\xfb\; (set! f1 (cdr argv)) + \x00\x81\x03\x81\; (set! f1 (car f1)) + \x08\x80\x80\x81\; (set! f0 (fix+ f0 f1)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\xff\x80\x00\x00\x01\x01" ) 0 (2 3 4 5) ) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-foldr.rla b/src/examples/test-foldr.rla index bbc303d..dc98a33 100644 --- a/src/examples/test-foldr.rla +++ b/src/examples/test-foldr.rla @@ -1,29 +1,29 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-foldr) ; (foldr + 0 '(2 3 4 5))) - #( + #@#( #i"../lib/primitive/foldr.rla" ( - #S(#="lambda" + #@#S(#="lambda" ; (define (+ x y) ; (fix+ x y)) - #(#f) - #() + #@#(#f) + #@#() 2 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x00\x81\x04\xfb\; (set! f1 (cdr argv)) - \x00\x81\x03\x81\; (set! f1 (car f1)) - \x08\x80\x80\x81\; (set! f0 (fix+ f0 f1)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\xff\x80\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x00\x81\x04\xfb\; (set! f1 (cdr argv)) + \x00\x81\x03\x81\; (set! f1 (car f1)) + \x08\x80\x80\x81\; (set! f0 (fix+ f0 f1)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\xff\x80\x00\x00\x01\x01" ) 0 (2 3 4 5) ) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-list.rla b/src/examples/test-list.rla index 66a0e61..7dd95d2 100644 --- a/src/examples/test-list.rla +++ b/src/examples/test-list.rla @@ -1,13 +1,13 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-list) ; (list 2 3 4 5)) - #( + #@#( #i"../lib/primitive/list.rla" (1 2 3 4 5) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-map.rla b/src/examples/test-map.rla index 70b7e57..cc2d6c3 100644 --- a/src/examples/test-map.rla +++ b/src/examples/test-map.rla @@ -1,16 +1,16 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-map) ; (map list '(2 3 4 5))) - #( + #@#( #i"../lib/primitive/map.rla" ( #i"../lib/primitive/list.rla" (2 3 4 5) ) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-or.rla b/src/examples/test-or.rla index f4e60b2..d52dac2 100644 --- a/src/examples/test-or.rla +++ b/src/examples/test-or.rla @@ -1,23 +1,23 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-or) ; (and (lambda () #f) ; (lambda () 3) ; (lambda () #f) ; (lambda () #t) ; (lambda () #f))) - #( + #@#( #i"../lib/primitive/or.rla" ( - #S(#="lambda" #((#f) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #(( 3) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #((#f) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #((#t) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") - #S(#="lambda" #((#f) #f) #() 0 "" "\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#((#f) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#(( 3) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#((#f) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#((#t) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") + #@#S(#="lambda" #@#((#f) #f) #@#() 0 #@"" #@"\xff\x01\x00\x00\x02\x02") ) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/examples/test-reverse.rla b/src/examples/test-reverse.rla index df1765c..c5a4710 100644 --- a/src/examples/test-reverse.rla +++ b/src/examples/test-reverse.rla @@ -1,13 +1,13 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (test-reverse) ; (reverse '(2 3 4 5)) - #( + #@#( #i"../lib/primitive/reverse.rla" ((2 3 4 5)) ) - #() + #@#() 0 - "" - "\x01\x02\x00\x00\xfe\xff" + #@"" + #@"\x01\x02\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/math/fact.rla b/src/lib/math/fact.rla index 3bf12c3..ce85649 100755 --- a/src/lib/math/fact.rla +++ b/src/lib/math/fact.rla @@ -4,57 +4,57 @@ ; 1 ; (* n (fact (- n 1))))) -#0=#S(#="lambda" +#@#0=#S(#="lambda" ; (define (fact n) ; ((if (< n 1) ; (lambda () 1) ; (lambda () ... n fact ...)))) - #( + #@#( 1 - #S(#="lambda" + #@#S(#="lambda" ; (lambda _ 1) - #((1) #f) - #() + #@#((1) #f) + #@#() 0 - "" - "\xff\x01\x00\x00\x02\x02" + #@"" + #@"\xff\x01\x00\x00\x02\x02" ) - #S(#="template" + #@#S(#="template" ; (let [n] ; (lambda _ ; (let/cc k ; (call-with-values ; (lambda () (fact (- n 1))) ; (lambda (m) (k (* n m))))))) - #( + #@#( 1 - #S(#="template" + #@#S(#="template" ; (let (n) ; (let/cc k ; (lambda (m) ; (k (* n m))))) - #(#f) - "\x40\xff" ; i0 k + #@#(#f) + #@"\x40\xff" ; i0 k 1 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x0a\x80\x40\x80\; (set! f0 (fix* i0 f0)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\x41\x80\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x0a\x80\x40\x80\; (set! f0 (fix* i0 f0)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\x41\x80\x00\x00\x01\x01" ) #=0 ; fact ) - "\x80" + #@"\x80" 1 - "\x09\x80\x40\x01\; (set! f0 (fix- i0 g1)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\x03\x80\x00\x00\xfe\x02" + #@"\x09\x80\x40\x01\; (set! f0 (fix- i0 g1)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\x03\x80\x00\x00\xfe\x02" ) ) - #() + #@#() 2 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x0d\x81\x80\x01\; (set! f1 (fix< f0 g1)) - \x81\x81\x02\x03"; (set! f1 (if f1 g2 g3)) - "\x81\x00\x00\x00\xfe\xff" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x0d\x81\x80\x01\; (set! f1 (fix< f0 g1)) + \x81\x81\x02\x03"; (set! f1 (if f1 g2 g3)) + #@"\x81\x00\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/acons.rla b/src/lib/primitive/acons.rla index cd88918..c17c9c1 100644 --- a/src/lib/primitive/acons.rla +++ b/src/lib/primitive/acons.rla @@ -1,17 +1,17 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (acons a b lst) ; (cons a (cons b lst))) - #(#f) - #() + #@#(#f) + #@#() 3 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x00\x82\x04\xfb\; (set! f2 (cdr argv)) - \x00\x81\x03\x82\; (set! f1 (car f2)) - \x00\x82\x04\x82\; (set! f2 (cdr f2)) - \x00\x82\x03\x82\; (set! f2 (car f2)) - \x02\x81\x81\x82\; (set! f1 (cons f1 f2)) - \x02\x80\x80\x81\; (set! f0 (cons f0 f1)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\xff\x80\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x00\x82\x04\xfb\; (set! f2 (cdr argv)) + \x00\x81\x03\x82\; (set! f1 (car f2)) + \x00\x82\x04\x82\; (set! f2 (cdr f2)) + \x00\x82\x03\x82\; (set! f2 (car f2)) + \x02\x81\x81\x82\; (set! f1 (cons f1 f2)) + \x02\x80\x80\x81\; (set! f0 (cons f0 f1)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\xff\x80\x00\x00\x01\x01" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/and.rla b/src/lib/primitive/and.rla index 07274d2..de4d48c 100644 --- a/src/lib/primitive/and.rla +++ b/src/lib/primitive/and.rla @@ -11,40 +11,40 @@ ; #t ; fns)) -#S(#="lambda" - #( +#@#S(#="lambda" + #@#( #i"foldl.rla" - #S(#="template" + #@#S(#="template" ; (lambda (fn _) ; (let/cc k2 ; ((lambda (x) ; ((if x k2 k) x)) ; (fn)))) - #( - #S(#="template" + #@#( + #@#S(#="template" ; (lambda (x) ; ((if x k2 k) x)) - #(#f) - "\x40\xff" ; i0 k + #@#(#f) + #@"\x40\xff" ; i0 k 1 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x80\x80\x41\x40"; (set! f0 (if f0 i1 i0)) - "\x80\xfb\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x80\x80\x41\x40"; (set! f0 (if f0 i1 i0)) + #@"\x80\xfb\x00\x00\x01\x01" ) ) - "\xff" ; k + #@"\xff" ; k 1 - "\x00\x80\x03\xfb"; (set! f0 (car argv)) - "\x80\x00\x00\x00\xfe\x01" + #@"\x00\x80\x03\xfb"; (set! f0 (car argv)) + #@"\x80\x00\x00\x00\xfe\x01" ) #t ) - #() + #@#() 2 - "\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) - \x02\x80\x03\x80\; (set! f0 (cons g3 f0)) - \x00\x81\x1b\x02\; (set! f1 (lambda g2)) - \x02\x80\x81\x80"; (set! f0 (cons f1 f0)) - "\x01\x80\x00\x00\xfe\xff" + #@"\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) + \x02\x80\x03\x80\; (set! f0 (cons g3 f0)) + \x00\x81\x1b\x02\; (set! f1 (lambda g2)) + \x02\x80\x81\x80"; (set! f0 (cons f1 f0)) + #@"\x01\x80\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/append.rla b/src/lib/primitive/append.rla index f44693b..5dbf590 100644 --- a/src/lib/primitive/append.rla +++ b/src/lib/primitive/append.rla @@ -6,30 +6,30 @@ ; nil ; lsts)) -#S(#="lambda" - #( +#@#S(#="lambda" + #@#( #i"foldr.rla" - #S(#="lambda" - #( + #@#S(#="lambda" + #@#( #i"foldr.rla" #i"cons.rla" ) - #() + #@#() 2 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x02\x81\x80\x00\; (set! f1 (cons f0 nil)) - \x00\x80\x04\xfb\; (set! f0 (cdr argv)) - \x00\x80\x03\x80\; (set! f0 (car f0)) - \x02\x81\x80\x81\; (set! f1 (cons f0 f1)) - \x02\x81\x02\x81"; (set! f1 (cons g2 f1)) - "\x01\x81\x00\x00\xfe\xff" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x02\x81\x80\x00\; (set! f1 (cons f0 nil)) + \x00\x80\x04\xfb\; (set! f0 (cdr argv)) + \x00\x80\x03\x80\; (set! f0 (car f0)) + \x02\x81\x80\x81\; (set! f1 (cons f0 f1)) + \x02\x81\x02\x81"; (set! f1 (cons g2 f1)) + #@"\x01\x81\x00\x00\xfe\xff" ) ) - #() + #@#() 1 - "\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) - \x02\x80\x00\x80\; (set! f0 (cons nil f0)) - \x02\x80\x02\x80"; (set! f0 (cons g2 f0)) - "\x01\x80\x00\x00\xfe\xff" + #@"\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) + \x02\x80\x00\x80\; (set! f0 (cons nil f0)) + \x02\x80\x02\x80"; (set! f0 (cons g2 f0)) + #@"\x01\x80\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/cons.rla b/src/lib/primitive/cons.rla index ef4c564..280abf9 100644 --- a/src/lib/primitive/cons.rla +++ b/src/lib/primitive/cons.rla @@ -1,14 +1,14 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (cons x y) ; (builtin-cons x y)) - #(#f) - #() + #@#(#f) + #@#() 2 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x00\x81\x04\xfb\; (set! f1 (cdr argv)) - \x00\x81\x03\x81\; (set! f1 (car f1)) - \x02\x80\x80\x81\; (set! f0 (cons f0 f1)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\xff\x80\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x00\x81\x04\xfb\; (set! f1 (cdr argv)) + \x00\x81\x03\x81\; (set! f1 (car f1)) + \x02\x80\x80\x81\; (set! f0 (cons f0 f1)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\xff\x80\x00\x00\x01\x01" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/foldl.rla b/src/lib/primitive/foldl.rla index f0453b2..a422d50 100644 --- a/src/lib/primitive/foldl.rla +++ b/src/lib/primitive/foldl.rla @@ -7,63 +7,63 @@ ; (foldl fn (fn (car lst) init) (cdr lst)) ; init)) -#0=#S(#="lambda" +#@#0=#S(#="lambda" ; (define (foldl fn init lst) ; ((if (pair? lst) ; (lambda () (foldl fn (fn (car lst) init) (cdr lst)) ; (lambda () init)))) - #( - #S(#="template" + #@#( + #@#S(#="template" ; (lambda () ; (let/cc k ; (call-with-multiple-values ; (lambda (new-init) ; (k (foldl fn new-init (cdr lst)))) ; (lambda () (fn (car lst) init))))) - #( - #S(#="template" + #@#( + #@#S(#="template" ; (lambda (new-init) ; (k (foldl fn new-init (cdr lst)))) - #(#=0) - "\x40\x41\x42\xfe\xff" ; i0 i1 i2 ctx k + #@#(#=0) + #@"\x40\x41\x42\xfe\xff" ; i0 i1 i2 ctx k 2 - "\x00\x80\x04\x42\; (set! f0 (cdr i2)) - \x02\x80\x80\x00\; (set! f0 (cons f0 nil)) - \x00\x81\x03\xfb\; (set! f1 (car argv)) - \x02\x80\x81\x80\; (set! f0 (cons f1 f0)) - \x02\x80\x40\x80"; (set! f0 (cons i0 f0)) - "\x01\x80\x00\x00\x43\x44" + #@"\x00\x80\x04\x42\; (set! f0 (cdr i2)) + \x02\x80\x80\x00\; (set! f0 (cons f0 nil)) + \x00\x81\x03\xfb\; (set! f1 (car argv)) + \x02\x80\x81\x80\; (set! f0 (cons f1 f0)) + \x02\x80\x40\x80"; (set! f0 (cons i0 f0)) + #@"\x01\x80\x00\x00\x43\x44" ) ) - "\x80\x81\x82" ; f0=fn f1=init f2=lst + #@"\x80\x81\x82" ; f0=fn f1=init f2=lst 2 - "\x02\x80\x41\x00\; (set! f0 (cons i1 nil)) - \x00\x81\x03\x42\; (set! f1 (car i2)) - \x02\x80\x81\x80"; (set! f0 (cons f1 f0)) - "\x40\x80\x00\x00\xfe\x01" + #@"\x02\x80\x41\x00\; (set! f0 (cons i1 nil)) + \x00\x81\x03\x42\; (set! f1 (car i2)) + \x02\x80\x81\x80"; (set! f0 (cons f1 f0)) + #@"\x40\x80\x00\x00\xfe\x01" ) - #S(#="template" + #@#S(#="template" ; (lambda () init) - #(#f) - "\x81" ; f1 + #@#(#f) + #@"\x81" ; f1 1 - "\x02\x80\x40\x00"; (set! f0 (cons i0 nil)) - "\xff\x80\x00\x00\x01\x01" + #@"\x02\x80\x40\x00"; (set! f0 (cons i0 nil)) + #@"\xff\x80\x00\x00\x01\x01" ) ) - #() + #@#() 6 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) ; f0=fn - \x00\x82\x04\xfb\; (set! f2 (cdr argv)) - \x00\x81\x03\x82\; (set! f1 (car f2)) ; f1=init - \x00\x82\x04\x82\; (set! f2 (cdr f2)) - \x00\x82\x03\x82\; (set! f2 (car f2)) ; f2=lst - \x00\x84\x01\x01\; (set! f4 g1) - \x00\x85\x01\x00\; (set! f5 nil) - \x00\x83\x0b\x82\; (set! f3 (pair? f2)) - \x40\x83\x00\x00\; (goto-end-if f3) - \x00\x84\x01\xff\; (set! f4 k) - \x02\x85\x81\x00"; (set! f5 (cons f1 nil)) - "\x84\x85\x00\x00\xfe\xff" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) ; f0=fn + \x00\x82\x04\xfb\; (set! f2 (cdr argv)) + \x00\x81\x03\x82\; (set! f1 (car f2)) ; f1=init + \x00\x82\x04\x82\; (set! f2 (cdr f2)) + \x00\x82\x03\x82\; (set! f2 (car f2)) ; f2=lst + \x00\x84\x01\x01\; (set! f4 g1) + \x00\x85\x01\x00\; (set! f5 nil) + \x00\x83\x0b\x82\; (set! f3 (pair? f2)) + \x40\x83\x00\x00\; (goto-end-if f3) + \x00\x84\x01\xff\; (set! f4 k) + \x02\x85\x81\x00"; (set! f5 (cons f1 nil)) + #@"\x84\x85\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/foldr.rla b/src/lib/primitive/foldr.rla index 3c89551..ebac5e1 100644 --- a/src/lib/primitive/foldr.rla +++ b/src/lib/primitive/foldr.rla @@ -8,56 +8,56 @@ ; (foldr fn init (cdr lst))) ; init)) -#0=#S(#="lambda" +#@#0=#S(#="lambda" ; (define (foldr fn init lst) ; ((if (pair? lst) ; (lambda () (fn (car lst) ; (foldr fn init (cdr lst)))) ; (lambda () init)))) - #( - #S(#="template" + #@#( + #@#S(#="template" ; (lambda () ; (let/cc k ; (let ([lstcar (car lst)]) ; (call-with-multiple-values ; (lambda (v) (k (fn lstcar v))) ; (lambda () (foldr fn init (cdr lst))))))) - #( - #S(#="template" + #@#( + #@#S(#="template" ; (lambda (v) (k (fn lstcar v))) - #() - "\x40\x81\xfe\xff" ; i0 f1 ctx k + #@#() + #@"\x40\x81\xfe\xff" ; i0 f1 ctx k 1 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x02\x80\x80\x00\; (set! f0 (cons f0 nil)) - \x02\x80\x41\x80"; (set! f0 (cons i1 f0)) - "\x40\x80\x00\x00\x42\x43" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x02\x80\x80\x00\; (set! f0 (cons f0 nil)) + \x02\x80\x41\x80"; (set! f0 (cons i1 f0)) + #@"\x40\x80\x00\x00\x42\x43" ) #=0 ; foldr ) - "\x80\x81\x82" ; f0=fn f1=init f2=lst + #@"\x80\x81\x82" ; f0=fn f1=init f2=lst 3 - "\x00\x80\x04\x42\; (set! f0 (cdr i2)) - \x00\x81\x03\x42\; (set! f1 (car i2)) - \x02\x82\x80\x00\; (set! f2 (cons f0 nil)) - \x02\x82\x41\x82\; (set! f2 (cons i1 f2)) - \x02\x82\x40\x82"; (set! f2 (cons i0 f2)) - "\x02\x82\x00\x00\xfe\x01" + #@"\x00\x80\x04\x42\; (set! f0 (cdr i2)) + \x00\x81\x03\x42\; (set! f1 (car i2)) + \x02\x82\x80\x00\; (set! f2 (cons f0 nil)) + \x02\x82\x41\x82\; (set! f2 (cons i1 f2)) + \x02\x82\x40\x82"; (set! f2 (cons i0 f2)) + #@"\x02\x82\x00\x00\xfe\x01" ) ) - #() + #@#() 6 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) ; f0=fn - \x00\x82\x04\xfb\; (set! f2 (cdr argv)) - \x00\x81\x03\x82\; (set! f1 (car f2)) ; f1=init - \x00\x82\x04\x82\; (set! f2 (cdr f2)) - \x00\x82\x03\x82\; (set! f2 (car f2)) ; f2=lst - \x00\x84\x01\x01\; (set! f4 g1) - \x00\x85\x01\x00\; (set! f5 nil) - \x00\x83\x0b\x82\; (set! f3 (pair? f2)) - \x40\x83\x00\x00\; (goto-end-if f3) - \x00\x84\x01\xff\; (set! f4 k) - \x02\x85\x81\x00"; (set! f5 (cons f1 nil)) - "\x84\x85\x00\x00\xfe\xff" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) ; f0=fn + \x00\x82\x04\xfb\; (set! f2 (cdr argv)) + \x00\x81\x03\x82\; (set! f1 (car f2)) ; f1=init + \x00\x82\x04\x82\; (set! f2 (cdr f2)) + \x00\x82\x03\x82\; (set! f2 (car f2)) ; f2=lst + \x00\x84\x01\x01\; (set! f4 g1) + \x00\x85\x01\x00\; (set! f5 nil) + \x00\x83\x0b\x82\; (set! f3 (pair? f2)) + \x40\x83\x00\x00\; (goto-end-if f3) + \x00\x84\x01\xff\; (set! f4 k) + \x02\x85\x81\x00"; (set! f5 (cons f1 nil)) + #@"\x84\x85\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/list.rla b/src/lib/primitive/list.rla index ac4b993..5ce3cf3 100644 --- a/src/lib/primitive/list.rla +++ b/src/lib/primitive/list.rla @@ -1,16 +1,16 @@ ;; Returns a copy of the argument list ; (define (list . lst) ; (foldr cons nil lst)) -#S(#="lambda" - #( +#@#S(#="lambda" + #@#( #i"foldr.rla" #i"cons.rla" ) - #() + #@#() 1 - "\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) - \x02\x80\x00\x80\; (set! f0 (cons nil f0)) - \x02\x80\x02\x80"; (set! f0 (cons g2 f0)) - "\x01\x80\x00\x00\xfe\xff" + #@"\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) + \x02\x80\x00\x80\; (set! f0 (cons nil f0)) + \x02\x80\x02\x80"; (set! f0 (cons g2 f0)) + #@"\x01\x80\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/map.rla b/src/lib/primitive/map.rla index fa01fc1..c322a3a 100644 --- a/src/lib/primitive/map.rla +++ b/src/lib/primitive/map.rla @@ -1,59 +1,59 @@ -#S(#="lambda" +#@#S(#="lambda" ; (define (map fn lst) ; (reverse (foldl (lambda (x lst) ; (cons (fn x) lst)) ; () ; lst))) - #( + #@#( #i"foldl.rla" - #S(#="template" + #@#S(#="template" ; (lambda (x rlst) ; (let/cc k ; (call-with-multiple-values ; (lambda (y) (k (cons y rlst))) ; (lambda () (fn x))))) - #( - #S(#="template" + #@#( + #@#S(#="template" ; (lambda (y) ; (k (cons y rlst))) - #(#f) - "\x81\xff" ; f1 k + #@#(#f) + #@"\x81\xff" ; f1 k 1 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x02\x80\x80\x40\; (set! f0 (cons f0 i0)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\x41\x80\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x02\x80\x80\x40\; (set! f0 (cons f0 i0)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\x41\x80\x00\x00\x01\x01" ) ) - "\x80" + #@"\x80" 2 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x00\x81\x04\xfb\; (set! f1 (cdr argv)) - \x00\x81\x03\x81\; (set! f1 (car f1)) - \x00\x81\x1b\x01\; (set! f1 (lambda g1)) - \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) - "\x40\x80\x00\x00\xfe\x81" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x00\x81\x04\xfb\; (set! f1 (cdr argv)) + \x00\x81\x03\x81\; (set! f1 (car f1)) + \x00\x81\x1b\x01\; (set! f1 (lambda g1)) + \x02\x80\x80\x00"; (set! f0 (cons f0 nil)) + #@"\x40\x80\x00\x00\xfe\x81" ) - #S(#="template" + #@#S(#="template" ; (lambda (rlst) ; (k (reverse rlst))) - #(#i"reverse.rla") - "\xfe\xff" ; ctx k + #@#(#i"reverse.rla") + #@"\xfe\xff" ; ctx k 0 - "" - "\x01\xfb\x00\x00\x40\x41" + #@"" + #@"\x01\xfb\x00\x00\x40\x41" ) ) - #() + #@#() 4 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x00\x81\x04\xfb\; (set! f1 (cdr argv)) - \x00\x81\x03\x81\; (set! f1 (car f1)) - \x02\x82\x81\x00\; (set! f2 (cons f1 nil)) - \x02\x82\x00\x82\; (set! f2 (cons nil f2)) - \x00\x83\x1b\x02\; (set! f3 (lambda g2)) - \x02\x82\x83\x82\; (set! f2 (cons f3 f2)) - \x00\x83\x1b\x03"; (set! f3 (lambda g3)) - "\x01\x82\x00\x00\xfe\x83" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x00\x81\x04\xfb\; (set! f1 (cdr argv)) + \x00\x81\x03\x81\; (set! f1 (car f1)) + \x02\x82\x81\x00\; (set! f2 (cons f1 nil)) + \x02\x82\x00\x82\; (set! f2 (cons nil f2)) + \x00\x83\x1b\x02\; (set! f3 (lambda g2)) + \x02\x82\x83\x82\; (set! f2 (cons f3 f2)) + \x00\x83\x1b\x03"; (set! f3 (lambda g3)) + #@"\x01\x82\x00\x00\xfe\x83" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/or.rla b/src/lib/primitive/or.rla index a9f7493..c31ecfe 100644 --- a/src/lib/primitive/or.rla +++ b/src/lib/primitive/or.rla @@ -11,41 +11,41 @@ ; #f ; fns)) -#S(#="lambda" - #( +#@#S(#="lambda" + #@#( #i"foldl.rla" - #S(#="template" + #@#S(#="template" ; (lambda (fn _) ; (let/cc k2 ; ((lambda (x) ; ((if x k2 k) x)) ; (fn)))) - #( - #S(#="template" + #@#( + #@#S(#="template" ; (lambda (x) ; ((if x k2 k) x)) - #(#f) - "\x40\xff" ; i0 k + #@#(#f) + #@"\x40\xff" ; i0 k 1 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x80\x80\x40\x41"; (set! f0 (if f0 i0 i1)) - "\x80\xfb\x00\x00\x01\x01" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x80\x80\x40\x41"; (set! f0 (if f0 i0 i1)) + #@"\x80\xfb\x00\x00\x01\x01" ) ) - "\xff" ; k + #@"\xff" ; k 2 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x00\x81\x1b\x01"; (set! f1 (lambda g1)) - "\x80\x00\x00\x00\xfe\x81" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x00\x81\x1b\x01"; (set! f1 (lambda g1)) + #@"\x80\x00\x00\x00\xfe\x81" ) #f ) - #() + #@#() 2 - "\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) - \x02\x80\x03\x80\; (set! f0 (cons g3 f0)) - \x00\x81\x1b\x02\; (set! f1 (lambda g2)) - \x02\x80\x81\x80"; (set! f0 (cons f1 f0)) - "\x01\x80\x00\x00\xfe\xff" + #@"\x02\x80\xfb\x00\; (set! f0 (cons argv nil)) + \x02\x80\x03\x80\; (set! f0 (cons g3 f0)) + \x00\x81\x1b\x02\; (set! f1 (lambda g2)) + \x02\x80\x81\x80"; (set! f0 (cons f1 f0)) + #@"\x01\x80\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: diff --git a/src/lib/primitive/reverse.rla b/src/lib/primitive/reverse.rla index 7ef22a7..2930dda 100644 --- a/src/lib/primitive/reverse.rla +++ b/src/lib/primitive/reverse.rla @@ -1,17 +1,17 @@ ;; Returns a reversed copy of the given list ; (define (reverse lst) ; (foldl cons nil lst)) -#S(#="lambda" - #( +#@#S(#="lambda" + #@#( #i"foldl.rla" #i"cons.rla" ) - #() + #@#() 1 - "\x00\x80\x03\xfb\; (set! f0 (car argv)) - \x02\x80\x80\x00\; (set! f0 (cons f0 nil)) - \x02\x80\x00\x80\; (set! f0 (cons nil f0)) - \x02\x80\x02\x80"; (set! f0 (cons g2 f0)) - "\x01\x80\x00\x00\xfe\xff" + #@"\x00\x80\x03\xfb\; (set! f0 (car argv)) + \x02\x80\x80\x00\; (set! f0 (cons f0 nil)) + \x02\x80\x00\x80\; (set! f0 (cons nil f0)) + \x02\x80\x02\x80"; (set! f0 (cons g2 f0)) + #@"\x01\x80\x00\x00\xfe\xff" ) ; vim:set syntax= sw=2 expandtab: