36 lines
455 B
Forth
Executable File
36 lines
455 B
Forth
Executable File
\ cat.fs - String concatenation
|
|
|
|
variable str
|
|
|
|
: cat { a1 u1 a2 u2 -- a3 u1+u2 }
|
|
here str !
|
|
u1 u2 + chars allot
|
|
u1 0 u+do
|
|
a1 i + @
|
|
str i + !
|
|
loop
|
|
u2 0 u+do
|
|
a2 i + @
|
|
str u1 + i + !
|
|
loop
|
|
str u1 u2 +
|
|
;
|
|
|
|
: 3cat { a1 u1 a2 u2 a3 u3 -- a4 u1+u2+u3 }
|
|
here str !
|
|
u1 u2 u3 + + chars allot
|
|
u1 0 u+do
|
|
a1 i + @
|
|
str i + !
|
|
loop
|
|
u2 0 u+do
|
|
a2 i + @
|
|
str u1 i + + !
|
|
loop
|
|
u3 0 u+do
|
|
a3 i + @
|
|
str u1 u2 i + + + !
|
|
loop
|
|
str u1 u2 u3 + +
|
|
;
|