Next: , Previous: , Up: Forth Tutorial   [Contents][Index]

3.9 Colon Definitions

are similar to procedures and functions in other programming languages.

: squared ( n -- n^2 )
   dup * ;
5 squared .
7 squared .

: starts the colon definition; its name is squared. The following comment describes its stack effect. The words dup * are not executed, but compiled into the definition. ; ends the colon definition.

The newly-defined word can be used like any other word, including using it in other definitions:

: cubed ( n -- n^3 )
   dup squared * ;
-5 cubed .
: fourth-power ( n -- n^4 )
   squared squared ;
3 fourth-power .

Assignment: Write colon definitions for nip, tuck, negate, and /mod in terms of other Forth words, and check if they work (hint: test your tests on the originals first). Don’t let the ‘redefined’-Messages spook you, they are just warnings.

Reference: Colon Definitions.