Added defer/is to support mutual recursion.
[scheme.forth.jl.git] / defer-is.4th
1 \ Add words supporting deferred execution
2
3 : abort-defer
4     ." Tried to execute undefined deferred word." cr abort ;
5
6 : defer
7     create ['] abort-defer ,
8 does>
9     @ execute
10 ;
11
12 hide abort-defer
13
14 : defer! ( cfa cfaDef -- )
15     >body ! ;
16     
17
18 : is immediate
19     bl word find
20
21     0= abort" Undefined deferred word."
22
23     state @ 0= if
24         defer!
25     else
26         ['] lit , , ['] defer! ,
27     then
28 ;