スペースインベーダー演算子を使ってみた

スペースインベーダー演算子を使ってみた

※ネタです※

あらかじめ言っておきますが、ネタブログです。プログラミング言語における、いわゆるヘンテコ構文ルールをおかしく書いてゆくブログです。

スペースインベーダー演算子とは?

プログラミング言語にはたくさんの演算子があります。C言語で言えば、+ * = ^ &&、C++で言えば、and class ::、Pythonで言えば、** in :、などがあると思います。

これはほんの一例だし、中には公然に仕様書に書かれていない演算子があります。今回はそのうちの一つのスペースインベーダー演算子を紹介します。

C言語でもできますが、まあ、よく私はPythonでブログを書くので、今回もPythonで書いてゆきます。

invader = 0
invader -=- 1    # space invader operator
print("invader:", invader)
# invader: 1
invador +=+ 1    # space invader operator
print("invader:", invader)
# invader: 2

なんだこれは

スペースインベーダー演算子-=- +=+は、およそインクリメントと同じような機能を持ちます。すごい!

まあ、フツーのインクリメントがあるんだし、そんなに使うことはありませんが、こんなものもあるよ、と見納めください。

それでは終わらない

残念ながら、これは標準的に呼ばれている「演算子」とは違います。なぜか?

それは、以下のように構文を分けてみればわかります。

invader = 0
invader -=- 1
invader -= - 1              # これをこんな感じに分けて
invader -= -1               # こう!
invader -= (-1)             # もう少し!
invader = invader - (-1)    # これでわかって!

つまり、-1をデクリメントしているわけです。

+=+に関しても、同様に+1をインクリメントしているだけということになります。

さいごに

これでわかっていただけたでしょうか?

いわゆる、スペースインベーダー演算子というのは、ただの-1デクリメント、または+1インクリメントだったのです!

というわけで、今回はこの辺で。