Statische Arrays an zu legen ist ein häufig geübter, aber im ANS Forth nicht standardisierter Vorgang. Die wohl weit verbreitete „klassische“ Form ist so:
: Array ( n -- ) CREATE CELLS ALLOT DOES> ( n -- addr ) SWAP CELLS + ; \ Kann so benutzt werden: \ 10 array DATA \ 1 data ! . \ 2 data ! . \ ... \ 1 data @ . \ 2 data @ .
Die andere Form ist die des Forth Scientific Library (FSL):
: } ( addr n -- n-addr ) cells + ; 10 constant size create data{ size cells allot \ data{ ( -- addr ) data{ size 0 fill \ Kann so benutzt werden: \ 15 data{ 0 } ! \ 60 data{ 1 } ! \ 25 data{ 2 } ! \ \ data{ 1 } ? \ : tt cr ." I am " data{ 1 } ? ." years old!" cr ;
Tags: ANS-Forth data-structures