OpenBoot 3.x コマンド・リファレンスマニュアル

スタック操作コマンド

表 I-8 スタック操作コマンド

コマンド  

スタックダイアグラム 

説明 

clear

( ??? -- ) 

スタックを空にします。 

depth

( -- u ) 

スタック上の項目数を返します。 

drop

( x -- ) 

一番上のスタック項目を削除します。 

2drop

( x1 x2 -- ) 

スタックから 2 項目を削除します。 

3drop

( x1 x2 x3 -- ) 

スタックから 3 項目を削除します。 

dup

( x -- x x )  

一番上のスタック項目を複製します。 

2dup

( x1 x2 -- x1 x2 x1 x2 ) 

2 スタック項目を複製します。 

3dup

( x1 x2 x3 -- x1 x2 x3 x1 x2 x3 ) 

3 スタック項目を複製します。 

?dup

( x -- x x | 0 ) 

ゼロ以外の場合、一番上のスタック項目を複製します。 

nip

( x1 x2 -- x2 ) 

2 番目のスタック項目を捨てます。 

over

( x1 x2 -- x1 x2 x1 ) 

2 番目のスタック項目をスタックの一番上にコピーします。 

2over

( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) 

2 番目以降のスタック項目をコピーします。 

pick

( xu ... x1 x0 u -- xu ... x1 x0 xu ) 

u 番目のスタック項目をコピーします (1 pick = over)。

>r

( x -- ) (R: -- x ) 

スタック項目を復帰スタックに転送します。 

r>

( -- x ) ( R: x -- ) 

復帰スタック項目をスタックに転送します。 

r@

( -- x ) ( R: x -- x ) 

復帰スタックの一番上をスタックにコピーします。  

roll

( xu ... x1 x0 u -- xu-1 ... x1 x0 xu ) 

u 個のスタック項目を回転します。(2 roll = rot)。

rot

( x1 x2 x3 -- x2 x3 x1 ) 

3 スタック項目を回転します。 

-rot

( x1 x2 x3 -- x3 x1 x2 ) 

3 スタック項目を逆方向に回転します。 

2rot

( x1 x2 x3 x4 x5 x6 -- x3 x4 x5 x6 x1 x2 ) 

2 対のスタック項目を入れ替えます。 

swap

( x1 x2 -- x2 x1 ) 

3 対のスタック項目を回転します。 

2swap

( x1 x2 x3 x4 -- x3 x4 x1 x2 ) 

一番上の 2 スタック項目を入れ替えます。 

tuck

( x1 x2 -- x2 x1 x2 ) 

一番上のスタック項目を 2 番目の項目の下にコピーします。