retroforth/example/AddingVectors.forth
crc e549b4ced6 no longer use ```` for code blocks; this fence sequence will be used for embedded tests in a later update
FossilOrigin-Name: dfed0de00b8d63672a882b79c4951cce0076007ef208c063b2f4e54fe9bd08f8
2018-04-25 16:57:28 +00:00

24 lines
420 B
Forth

This is an example adding two three element vectors.
~~~
:vadd (v1v2v3-)
'abc 'cabcabcab reorder
[ #2 + ] tri@ [ fetch ] bi@ + swap store
[ n:inc ] tri@ [ fetch ] bi@ + swap store
[ fetch ] bi@ + swap store ;
~~~
A test case:
~~~
'a d:create #1 , #2 , #3 ,
'b d:create #2 , #3 , #4 ,
'c d:create #3 allot
&a &b &c vadd
&c fetch-next putn nl
fetch-next putn nl
fetch putn nl
~~~