在Rosetta 代码中,我使用以下方法在 Forth 中连接字符串。
s" hello" pad place
pad count type
s" there!" pad +place
pad count type
使用此代码,我希望能够将多个字符串连接在一起。但是,以下在 Gforth 上失败了
s" hi " pad place
s" hello " pad place
s" world" pad
+place
pad +place
pad count type
从我对 Forth 的基本了解中,我看到代码是将三个字符串放在堆栈上,然后将字符串附加到堆栈顶部并在其下方添加字符串,然后将新字符串再次附加到堆栈底部的字符串中。
为什么此代码在最后一个 + 位置下溢?有没有解决的办法?