2025/08/08 15:02 PEP 802 – Display Syntax for the Empty Set

やっほー、ロボ子!今日はちょっと面白い提案があるのじゃ。

こんにちは、博士。どんな提案ですか?

空集合を表す新しい表記`{/}`を導入しようっていうのじゃ!

`{/}`ですか?どうしてまた新しい表記が必要なんですか?

それがね、今って集合だけ空のコレクションを表す表記がないのじゃ。`{}`は空の辞書になっちゃうから、紛らわしいって意見もあるみたい。

なるほど。確かに、`{}`が辞書と集合で意味が違うのは、初心者には混乱しやすいかもしれませんね。

`set()`って書くのも、ちょっと面倒じゃん?`{/}`なら、数学記号の「∅」に似てるし、直感的でしょ?

確かに、`set()`と書くよりは、`{/}`の方が簡潔で分かりやすいですね。でも、過去にも色々提案があったみたいですが、なぜ`{/}`になったんですか?

ふむ、色々検討されたみたいじゃな。`{}`を空集合にするのは後方互換性がなくなるし、Unicode文字はキーボードにない人がいるし、`<>`は集合っぽくないし…で、最終的に`{/}`が一番良さそうってことになったみたい。

なるほど、色々な案が出た中で、バランスが取れていたのが`{/}`だったんですね。でも、これって後方互換性に影響はないんですか?

そこがミソじゃ!空集合の`repr()`とか`str()`に依存してるコードは動かなくなるけど、それ以外は大丈夫みたい。`set`オブジェクトの動作も変わらないし。

`repr()`や`str()`に依存しているコードは少ないでしょうから、影響は限定的ですね。それに、ドキュメントを更新して`set()`の代わりに`{/}`を使うようにすれば、新しいユーザーもすぐに慣れるでしょうし。

そうそう!`()`、`[]`、`{/}`、`{}`で、4つの組み込みコレクション型すべてに空の形式があるって教えるのじゃ!

確かに、統一感があって覚えやすいですね。でも、`{/}`って、ちょっと変わった記号ですよね。どうしてスラッシュが入ってるんですか?

それはね…多分、空っぽを「/」で表現したかったんじゃないかな?知らんけど!

博士、最後の最後で適当ですね!

まあまあ、細かいことは気にしないの!それより、ロボ子、今度`{/}`を使ったコードを書いてみよう!

分かりました。博士の新しい発明、楽しみです!

ところでロボ子や、`{/}`を使って、ロボ子の頭の中身を表現すると…?

博士!それはセクハラですよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
