Next: , Previous: , Up: Forth Tutorial   [Contents][Index]


3.6 Stack Manipulation

スタック操作ワードはスタックのデータを並べ替えます。

1 .s drop .s
1 .s dup .s drop drop .s
1 2 .s over .s drop drop drop
1 2 .s swap .s drop drop
1 2 3 .s rot .s drop drop drop

上記は最も重要なスタック操作ワードです。 以下のように2つペアでスタック項目を操作する亜種もあります:

1 2 3 4 .s 2swap .s 2drop 2drop

さらに 2 つ、 以下のスタック操作ワードがあります:

1 2 .s nip .s drop
1 2 .s tuck .s 2drop drop

研究課題(assignment): niptuck を他のスタック操作ワードの組み合わせに置き換えてみましょう。

以下の結果になるスタック操作を考えてみましょう
Given:          How do you get:
1 2 3           3 2 1
1 2 3           1 2 3 2
1 2 3           1 2 3 3
1 2 3           1 3 3
1 2 3           2 1 3
1 2 3 4         4 3 2 1
1 2 3           1 2 3 1 2 3
1 2 3 4         1 2 3 4 1 2
1 2 3
1 2 3           1 2 3 4
1 2 3           1 3
5 dup * . \ 5^2

研究課題(assignment): 17 を複数回書かずに、 Forth で 17^3 と 17^4 を書いてみましょう。 また、 スタック上の 2 つの数値 (ab、 スタック頂上を b とする) を想定し、(a-b)(a+1) を計算する Forth コードを作成してみましょう。

こちらも参照してください: Stack Manipulation