X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=defer-is.4th;h=89f07de5986924c0b2672cf611c440c9ff794455;hb=988c879292acffbbf86367601c41ad7c010ff160;hp=bf3225a23b3cb9e5ac4010fa4345d4d14d7e082c;hpb=95c071f1ce6af0571791b2e8b885780182982dff;p=scheme.forth.jl.git diff --git a/defer-is.4th b/defer-is.4th index bf3225a..89f07de 100644 --- a/defer-is.4th +++ b/defer-is.4th @@ -1,4 +1,4 @@ -\ Add words supporting deferred execution +\ Words supporting deferred execution : abort-defer ." Tried to execute undefined deferred word." cr abort ; @@ -18,7 +18,7 @@ hide abort-defer : is immediate bl word find - 0= abort" Undefined deferred word." + 0= abort" Tried to define unknown deferred word." state @ 0= if defer! @@ -26,3 +26,16 @@ hide abort-defer ['] lit , , ['] defer! , then ; + +: :noname + here current @ 1+ @ , + current @ 1+ ! + 0 , + here docol , + [compile] ] ; + + +\ Need this for tail call optimization + +: goto-deferred ( cfa -- ) + R> drop >body @ >body >R ;