萌えハッカーニュースリーダー

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

出典: https://peps.python.org/pep-0802/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

博士!それはセクハラですよ!

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

Search