のマンページにあるこの例を理解できません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