最初の例: フィボナッチ数列を出力
echo "[lA p c lA lB + d sN lB d sA lN d sB lFx]d sF 1 sA 1 sB lFx" | dc | head -100
おおまかに説明すると、[ ]d sF
が函数Fを定義する部分で、lFx
によって定義した函数Fを実行しています。[ ]d sF
のsとはsaveの意味で、式[ ]
をレジスタFに保存するという意味があります。
ここでは函数Fもとい[ ]
の中にそれを読み出して実行するlFx
が含まれているため、再帰的な計算が可能になっているわけです。
ζ(4)を利用した式を計算しています。
echo "20k [1 lN 4 ^ / lA + d sA lN 1 + d sN lA 90 * vv pc lFx]d sF 1 sA 2 sN lFx" | dc | head -20
echo "20k [lB li * d sB li 1 + d si lA pc lA 1 lB / + d sA lFx]d sF 1 si 1 sA 1 sB lFx" | dc | head -20