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.