Die Definition ist eigentlich ganz einfach:
: PLUSZ 43 EMIT 1 SPACES ;
Es gibt allerdings noch eine Alternative mit einem anderen Wort:
SPACE. SPACE ist eigentlich nur eine
Abkürzung für 1 SPACES, da diese Variante, dass man nur
ein Leerzeichen ausgeben will, recht oft vorkommt, haben viele
Forth-Varianten dieses Wort in ihrem 'Grundwortschatz'.
Vermutlich dachten sie nun, die Lösung wäre wieder ganz einfach, zum Beispiel:
: PLUSWELT PLUSZ PLUSZ PLUSZ ." Hallo Welt" PLUSZ PLUSZ PLUSZ ;
Damit sieht die Ausgabe allerdings nicht ganz so aus, wie gefordert:
PLUSWELT
+ + + Hallo Welt+ + + ok
Tatsächlich muss da noch ein weiteres SPACE mit hinein,
damit die Sache stimmt:
: PLUSWELT PLUSZ PLUSZ PLUSZ ." Hallo Welt" SPACE PLUSZ PLUSZ PLUSZ ;
5 3 - 2 * oder 2 5 3 - *
7 2 + 13 2 - *
4 2 + 3 * 2 /
3 2 + 5 * 6 2 - 4 * /
: ZIGARETTEN ( n -- )
18 < IF ." Zu jung!" CR
ELSE ." Bitte sehr!" CR
THEN ;
: VORZEICHEN ( n -- )
DUP 0= IF ." Null " ELSE
DUP 0< IF ." negativ " ELSE
." positiv " THEN THEN
DROP ;
das DROP am Ende ist dazu da den Stack leer zu
hinterlassen. Es ist nötig, da das erste DUP
gebraucht wird, falls die Zahl nicht Null ist.
: GRENZE ( n u o -- f )
ROT DUP ROT <
ROT ROT <
AND
: FIBONACCI
1 SWAP 1 SWAP 0
DO
OVER + DUP .
SWAP
LOOP
DROP DROP ;
: COLLATZ ( n -- )
BEGIN
DUP .
DUP 1 AND
IF
3 * 1 +
ELSE
2/
THEN
DUP
1 =
UNTIL DROP ;
Das letzte DROP dient wieder dazu den Stack 'leer' zu
hinterlassen.