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

Reply via email to