4

その上のすべての要素をポップせずに、Forth のインデックスでスタックの要素にアクセスする方法はありますか?

たとえば、1 から 1000 までの数字をスタックにプッシュした場合、どうすれば 500 番目の要素を取得できますか?

4

2 に答える 2

6

使用している Forth に PICK がない場合は、次のように定義できます。

: PICK   ?DUP IF SWAP >R 1- RECURSE R> SWAP EXIT THEN DUP ;

(もちろん、反復バージョンも可能です。)

于 2013-09-05T11:00:14.150 に答える