LoginSignup
27
13

More than 5 years have passed since last update.

ヘイトが溜まりがちなdcコマンドの活用方法を探る

Posted at

紛らわしいdcコマンド

今まで何回、cddcをtypoしましたか?
私は数え切れません。

cddcを間違えて以下のように入力してしまうと、何も起こらず処理が返ってきます。

$ dc /tmp

移動したものと思ってコマンドを続けてしまい、何かを壊してしまった方も居るのではないでしょうか。
そのたびにdcコマンドへのヘイトが溜まり、aliascdになるようにしている方も多いかと思います。

そんな不憫な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コマンドですが、
複雑な式になってくると、他のコマンドやプログラムを書いたほうが分かりやすく、かつ楽なことが多いです。
「微妙に括弧とか多くて計算するのが大変、でもプログラムを書くほどではない」という絶妙な式に遭遇する人はどれくらいいるのでしょうか。

結局、「普通は使わないのでcdaliasするのが良い」と思います。
名誉挽回、できませんでした。

活用されている方、是非コメントを下さい。

27
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
13