Search code examples
forthgforth

Gforth conditional expression with variables - only partly correct


Simple expression:

variable x  ok
4 x !  ok
3 x < . -1  ok
3 x > . 0  ok

This seems normal and correct, however:

variable x  ok
3 x !  ok
x 4 < . 0  ok
x 4 > . -1  ok

The second block of code is wrong. What is evaluating wrongly? What is the problem here?


Solution

  • variable x makes a new variable, but x returns the address, not the value.

    You need something like this:

    variable x
    3 x !  ok
    x @ 4 < .
    x @ 4 > .