String Words
We'll start with that perennial favorite of programmers, "hello world," to illustrate how to print out a string of characters. The word to output a string is ." (pronounced dot quote) and is used thus:
." hello world"
Note the space between ." and the string, and the absence of a space before the final quote. That's because ." is a Forth word, and all words must be separated by a space. The final quote character is not a Forth word, merely a string terminator.
A carriage-return/line-feed pair is output using the Forth word cr
, and a space is output using space. For more than one space, use the spaces word that takes a parameter from the stack to specify the number of spaces to be printed. For example, the following code prints 20 spaces to the console:
20 spaces
To output a number as an ASCII character, we use the word emit
. This is equivalent to the C function putchar. For example, to output an asterisk, we would use:
42 emit
The Forth word key
waits for a character to be input from the console, and the word key?
(key query) checks to see if a key has been pressed. Note that I have seen some implementations of Forth that use different words for character input. As the saying goes, your mileage may vary.
The word expect
is used to input a string of characters from the console.
Warning
Some Forths don't use the word expect, but use the word accept
instead. accept works in exactly the same way as expect.
expect uses two parameters from the stack. The
topmost parameter
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access