retroforth/interface/future.retro
crc 9e030890d2 add a:hash, new a:eq? and a:-eq? using it
FossilOrigin-Name: dfbda4bf2b4a28567bcd65a762aab2d025a94242da26cd857f82d712abe7ec55
2023-03-20 14:02:15 +00:00

40 lines
864 B
Forth

# New Words
This contains a variety of words from my more recent systems.
Notes:
`aa:` is a new set of array words. These will be replacing the
existing set in the future.
~~~
:aa:make (...n-a) here [ dup comma &comma times ] dip ;
:aa:map
swap [ fetch-next [ [ fetch over call ] sip
&store sip n:inc ] times
drop-pair ] sip ;
:aa:contains? (an-f)
swap #0 swap [ swap [ over eq? ] dip or ] a:for-each nip ;
:aa:first (a-n) #0 a:fetch ;
:aa:last (a-n) dup a:length n:dec a:fetch ;
:a:dup here [ dup a:length comma &comma a:for-each ] dip ;
~~~
~~~
:d:use-hashes
&eq? &d:lookup #5 - store
[ d:hash fetch ] &d:lookup #8 - store
#2049 &d:lookup store
&s:hash &d:lookup n:inc store ;
:d:use-strings
&s:eq? &d:lookup #5 - store
&d:name &d:lookup #8 - store
#0 &d:lookup store
#0 &d:lookup n:inc store ;
~~~