誕生日を迎えた。 実感が湧かないが自分の進路関係のあれこれは今年が本番らしいのでなんとかしたいと思う。
[PR] 現在の年齢はコチラ: https://yamad.me/about/
ところで,世の中には関数型のパラダイムでもないのにインクリメント演算子が存在しない言語があるらしい。 メジャーな言語に絞って調査した。
言語 | ++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;
int c = a+++++b;
a+++++b
がa++ + ++b
であることは明らかだが,字句解析器と(狭義の)構文解析器が分けて実装されていると機械はいい感じにこれを解釈することができないのだ。
構文解析なんもわからん。