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