紛らわしいdcコマンド
今まで何回、cd
とdc
をtypoしましたか?
私は数え切れません。
cd
とdc
を間違えて以下のように入力してしまうと、何も起こらず処理が返ってきます。
$ dc /tmp
移動したものと思ってコマンドを続けてしまい、何かを壊してしまった方も居るのではないでしょうか。
そのたびにdc
コマンドへのヘイトが溜まり、alias
でcd
になるようにしている方も多いかと思います。
そんな不憫なdc
コマンドですが、この記事では「使えるよ!」という所を紹介し、名誉挽回に努めたいと思います。
そもそも何をするコマンドなのか
dc
コマンドは逆ポーランド記法に対応した電卓です。
また、レジスタやマクロ、ファイル読み込みなども使える優れものです。
使い方
$ dc
1 2 + 3 + 4 * p
このようにすると、24
が出てきます。
中置記法では (1 + 2 + 3) * 4
ですね。
最後のp
で出力です。
演算子は四則演算、平方根やべき剰余まであり、とても充実しています。
色々な機能があるので、気になった方はぜひ調べてみてください。
どんな時に使えるか
計算が書き下せる
逆ポーランド記法なので、頭に浮かんだ計算をそのまま記述できます。
例えば、以下のような電卓に入力するのがめんどくさそうな式を考えます。
$$\frac{27}{(1+2)^{2}} * 2$$
こんな計算も、
「27を、1と2を足して2回掛け合わせたもので割って、2を掛ける」
=> 「27 1 2 + 2 ^ / 2 *」
と、日本語がそのまま式の順序になります。
括弧などが入って少し複雑な計算だと効果を発揮します。
コードの行数を縮めたい時には便利
強力な演算子が多く、マクロやレジスタが使え、独特な記法で短く書けるため、コードゴルフには役立つと思われます。
まとめ
上記のような利点があるdcコマンドですが、
複雑な式になってくると、他のコマンドやプログラムを書いたほうが分かりやすく、かつ楽なことが多いです。
「微妙に括弧とか多くて計算するのが大変、でもプログラムを書くほどではない」という絶妙な式に遭遇する人はどれくらいいるのでしょうか。
結局、「普通は使わないのでcd
にalias
するのが良い」と思います。
名誉挽回、できませんでした。
活用されている方、是非コメントを下さい。