Dc (UNIX)
これはレジスタ a に格納されたマクロを再帰的に呼び出してスタック全体の合計を計算する。マクロの動作は、まずスタックの先頭 2 を足し合わせ (+)、スタックの深さが 1 より大きい場合は再帰する (1z<a) ものである。マクロ文直前の 0d は一見必要ないように思えるがが、加算演算子がスタックの先頭 2 の要素を確実に取り出せることを保証するために必要である。
実行結果は 131 となる。
ファイルの各行に記述された dc コマンドを実行し、その合計値を計算する。単なる数値は dc コマンドとして有効であるので、行ごとに記述された数値の合計を得ることもできる。
これも上の例と同様にレジスタ a に格納されたマクロを再帰的に呼び出して合計を計算している。
? コマンドは標準入力から dc コマンドを読み込み、結果をスタックにプッシュする。ファイルの終端に達した場合はコマンドは読み込まれず、スタックには何もプッシュされない。
この結果は 12 となる。 入力の dc コマンドは複雑でも良い。
この結果は ( 3 × 5 ) + ( 4 × 3 ) + ( 5 + 5 + 5 ) = 42 {\displaystyle (3\times 5)+(4\times 3)+(5+5+5)=42} より 42 となる。
この手法を利用することの長所は、dc の演算は無限精度であるので、 AWK などの簡明な手法を用いる場合に起こりうるオーバーフローや精度落ちが発生しないことである。
対して短所もあり、空行 (技術的には要素をプッシュしない行) に遭遇するとループが停止すること、負値の符号 − {\displaystyle -} を dc の負符号 _ に置換する必要があることが挙げられる。dc の ? には空行とファイル終端を見分けるきれいな方法が提供されていない。