On Thu, Nov 21, 2024 at 10:05:28PM +0000, dave selby wrote: > Hello > > Not sure if this is the correct forum to ask but there is a bit of code I > don't understand. I am looking to define (( .. )) and was looking at ( ) > code, it all makes sense except for the first line > > loadfile @ 0= IF postpone ( EXIT THEN > > Why would you postpone an earlier definition of ( if you are on the command > line and not compiling ?
We want to append the compilation semantics of the previous ( to the new (. For (, the compilation semantics, interpretation, and execution semantics are the same (it's a proper immediate word). What would you write? loadfile @ 0= IF ( EXIT THEN No, that would just comment out the code starting with "(". loadfile @ 0= IF [compile] ( EXIT THEN That has the same effect for "(" as using POSTPONE. loadfile @ 0= IF ['] ( compile, EXIT THEN For "(", this has the same effect as using POSTPONE. - anton