RosettaCodeData/Task/Dot-product/Forth/dot-product.fth
2023-07-01 13:44:08 -04:00

17 lines
361 B
Forth

: vector create cells allot ;
: th cells + ;
3 constant /vector
/vector vector a
/vector vector b
: dotproduct ( a1 a2 -- n)
0 tuck ?do -rot over i th @ over i th @ * >r rot r> + loop nip nip
;
: vector! cells over + swap ?do i ! 1 cells +loop ;
-5 3 1 a /vector vector!
-1 -2 4 b /vector vector!
a b /vector dotproduct . 3 ok