入力する:
> printf 1\n\2\n3\n
1
2
3
希望の出力:
0
1
1
タイピングprintf 1\n\2\n3\n | dc -e '-p'
出力は次のとおりです。
dc: stack empty
dc: stack empty
答え1
命令セット全体に直接パイプすることができますdc
。
printf "1 2 3 - - p" | dc
任意のスタックを減算するには、マクロを使用できます。
printf "%s [-z1<r]srz1<rp" "<insert numbers here>" | dc
例えば
printf "%s [-z1<r]srz1<rp" "100 5 2 1" | dc
96
このマクロは次のことを行います。
[
マクロの開始-
最初の2つの数字を減算してスタックに戻します。z1<r
スタックサイズをスタックと1にプッシュしてからLESSTHANを比較し、trueの場合はr
マクロを実行します。]sr
マクロが終了し、レジスタrに格納されます。z1<r
テストでスタックに要素が含まれていることを確認する1 < Stack Size
p
結果を印刷します。`