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

人は age++ と言うけれど

{
  date: "",
}

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


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

言語++increment
C / C++ / Dyes
Goyes
Java / Kotlinyes
C#yes
Bourne shell / Bashyes
PHP / Perlyes
JavaScript / Dartyes
Python / Ruby / Luano
Objective-C / Swiftno
Rust / Zigno

この中で,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