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 エクスポージャーから、スタックに 3 つの文字列を置き、スタックの一番上の文字列をその下の文字列に追加し、スタックの新しい文字列を一番下の文字列に再度追加するというコードが見えます。
このコードが最後の +place でアンダーフローするのはなぜですか? これを回避する方法はありますか?