のマンページにあるこの例を理解できませんdc
:
$ dc
1 0:a 0Sa 2 0:a La 0;ap
1
私にとって答えは2であるべきです:
1 0:a
ここでは、配列 の 0 番目の位置に 1 を格納しa
ます。0Sa
次に、 register のスタックに 0 をプッシュしますa
。2 0:a
ここでも、配列の 0 番目の位置に 2 をa
格納し、その位置に格納されていた前の 1 を上書きします。La
次に、レジスタのスタックに格納されている 0 をポップしa
て、メイン スタックにプッシュします。0;a
ここで再び 0 をメイン スタックにプッシュし、それをポップして配列インデックスとして使用し、配列の 0 番目の場所に格納されている 2a
をメイン スタックにプッシュします。p
ここで、メイン スタックの一番上にある 2 を出力します。したがって、答えは 2 になるはずです。
私は何が欠けていますか?
編集 :
$ dc -V
dc (GNU bc 1.06.95) 1.3.95