X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=scheme.4th;h=1f2111ab41158161e4c76f1066a396611d920fe1;hb=9f67194788cd9f6b8b576e31ecb7f3059648a659;hp=cecacff4bda20ae7fd4940f9762541179937b1d6;hpb=9094335682c3a223c21f550dc94d766827ddedee;p=scheme.forth.jl.git diff --git a/scheme.4th b/scheme.4th index cecacff..1f2111a 100644 --- a/scheme.4th +++ b/scheme.4th @@ -20,7 +20,7 @@ include defer-is.4th \ ------ Cons cell memory ------ {{{ -1000 constant N +10000 constant N create car-cells N allot create car-type-cells N allot create cdr-cells N allot @@ -972,7 +972,7 @@ defer eval begin 2dup cdr 2dup nil objeq? false = while - -2rot car over ( nextbody env exp env ) + -2rot car 2over ( nextbody env exp env ) eval 2drop \ discard result 2swap ( env nextbody ) @@ -981,7 +981,8 @@ defer eval 2drop ( env body ) car 2swap ( exp env ) - eval \ TODO: tail call optimization + ['] eval goto-prime \ Tail call optimization + \ eval \ No tail call optimization endof bold fg red ." Object not applicable. Aboring." reset-term cr