[REBOL] Re: The effect of learning Forth on my understanding of REBOL
From: lmecir::mbox::vol::cz at: 23-Mar-2007 19:58
Ged Byrne napsal(a):
> My thinking was strictly imperetive, so every word is a procedure to
> be executed.
> So if you have 'red', what does it do? Apparantly nothing.
> So if you have 'a: if arg1 [red]' what happens when red is executed? Nothing?
> My understanding before was that a block is an anonymous method with
> an implicit return.
This explanation is arguable, I guess. A block doesn't return anything
except for itself. The function IF is needed to evaluate the block to
yield the RED value when ARG1 is considered true. The other case is,
that ARG1 is considered false by IF. Even in that case IF has to return
a value, which equals to NONE in that case.
> Now I see that what red does is place something on the stack, where it
> remains until something picks it up. 'if' just leaves the stack
Again, the things are simpler - it is not a stack, it is just "result
is an expression in REBOL yielding 2, since 2 replaces 1 in the "result
I don't know whether this can be of any help to you, but it looks more
accurate to me.