<!-- 注: このサイトはまだ工事中です -->

人は age++ と言うけれど

{
  date: "",
}

誕生日を迎えた。 実感が湧かないが自分の進路関係のあれこれは今年が本番らしいのでなんとかしたいと思う。


ところで,世の中には関数型のパラダイムでもないのにインクリメント演算子が存在しない言語があるらしい。 メジャーな言語に絞って調査した。

言語 ++increment
C / C++ / D yes
Go yes
Java / Kotlin yes
C# yes
Bourne shell / Bash yes
PHP / Perl yes
JavaScript / Dart yes
Python / Ruby / Lua no
Objective-C / Swift no
Rust / Zig no

この中で,Swiftは世に放たれた後にインクリメント演算子を削除している1

つまり,バックエンドをRoRで組み,iOSのネイティブ開発をし,エディタにNeoVimを使い,趣味でRustをやっているキラキラでイケイケのエンジニアはインクリメント演算子を知らないことになる。 なんてこったい。

ところで,現在,一般的な言語処理系において以下のようなコードは解釈できない。

int a, b;
auto c = a+++++b;

a+++++ba++ + ++bであることは明らかだが,字句解析器と構文解析器の実装の都合上,機械はこれをいい感じに解釈することができないのだ。

「初心者が混乱してしまう」のは以上のようなコードであって,ただのインクリメント演算子は何も悪くない。 自分はショートコーディング大好き人間なので,初心者への配慮が演算子を減らしたいミニマリストの方便にしか聞こえない。

Footnotes

  1. https://github.com/apple/swift-evolution/blob/main/proposals/0004-remove-pre-post-inc-decrement.md