210a
<< <> >>

210

De programmeertaal Forth
home
Over het manipuleren van de invoerstroom.

MANY TIMES

Forth aan het werk

Als de gebruiker een regel intypt en op [rtn] drukt gaat Forth die regel als volgt te lijf:

Hij zoekt naar de eerste niet-spatie (hier begint vast en zeker een woord), vervolgens naar de eerstvolgende spatie (daar eindigt het woord). Hierbij fungeert de systeemvariabele >IN als aanwijsstokje. Forth houdt namelijk ijverig bij in >IN welke positie op de regel hij aan het bekijken is.

Daarna zoekt hij het zojuist afgebakende woord op in zijn woordenboek en voert het uit (executeert het). Vindt Forth dat woord niet, dan haakt hij af en laat de rest van de regel voor wat het is.

Zo lang het lukt herhaalt Forth deze procedure: hij bepaalt het volgende woord, steeds gebruik makend van >IN, en voert dat woord uit. Tot aan het einde van de regel.

Omdat Forth geen syntax heeft, hoeft hij van te voren niet te onderzoeken of de regel wel correct is. Eventuele typfouten komen vanzelf aan het licht, want Forth kan een verkeerd gespeld woord toch niet vinden. Met programmeerfouten zit dat natuurlijk anders, maar dat is geen syntaxkwestie.
) >IN @ . [rtn] ?
 1234567... posities
De inhoud van >IN wordt opgehaald door @. Forth heeft de regel dan al gelezen tot en met @ inclusief de spatie erachter.
)       >IN @ . [rtn] ?
 1234567890123... posities

)       >IN @ . >IN @ . [rtn] ?
 123456789012345678901... posities
Forth vertrouwt er op dat de gebruiker geen woord intypt dat de inhoud van >IN stiekem verandert, maar zeg zoiets nooit tegen een Forth-programmeur...
>>