| www.delorie.com/gnu/docs/gforth/gforth_28.html | search |
![]() Buy GNU books! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
In Forth you can use control structures only inside colon definitions.
An if-structure looks like this:
: abs ( n1 -- +n2 )
dup 0 < if
negate
endif ;
5 abs .
-5 abs .
|
if takes a flag from the stack. If the flag is non-zero (true),
the following code is performed, otherwise execution continues after the
endif (or else). < compares the top two stack
elements and prioduces a flag:
1 2 < . 2 1 < . 1 1 < . |
Actually the standard name for endif is then. This
tutorial presents the examples using endif, because this is often
less confusing for people familiar with other programming languages
where then has a different meaning. If your system does not have
endif, define it with
: endif postpone then ; immediate |
You can optionally use an else-part:
: min ( n1 n2 -- n )
2dup < if
drop
else
nip
endif ;
2 3 min .
3 2 min .
|
min without else-part (hint: what's the definition
of nip?).
Reference: 5.8.1 Selection.
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |