Pythonのパターンマッチング導入をめぐる話
(ryanking13.github.io)-
パターンマッチングへの要望
-
パターンマッチングのアイデアの歴史
-
PEP 622の登場
-
続く論争
-
PEP 622 v2
-
PEP 622 is dead, long live PEP 634, 635, 636
-
Hello, Pattern Matching!
-
まだ終わっていない話
パターンマッチングへの要望
パターンマッチングのアイデアの歴史
PEP 622の登場
続く論争
PEP 622 v2
PEP 622 is dead, long live PEP 634, 635, 636
Hello, Pattern Matching!
まだ終わっていない話
4件のコメント
こんな裏話があるとは知りませんでしたが、本当にとても面白く読みました。
本文の引用である「
Point(x,0)がPoint.__new__を呼び出しもせず、xという変数を探すわけでもない、まったく新しい意味を持つというのは直感的ではありません。」を読んだときは、Python にはパターンマッチング構文は合わないという意見に共感していましたが、PEP 634〜636 を読んでみると、パターンマッチングも悪くないなと思いました。ML 系の言語は最初からパターンマッチングを考慮して作られているので自然ですが、Python では
"Point"はすでにクラスコンストラクタのように使われているのだから、完全に混乱するはずだ、と考えていました。ところが PEP に書かれているコード例を読んでみると、まったく混乱しませんでした。私の文章ですね。ご紹介ありがとうございます。
こうした裏話をたどっていくと、意見が鋭く対立するテーマについて意思決定を下すことが、実に難しいことなのだと感じます。
パターンマッチング追加に関して、なぜいろいろな議論があるのかよく分かっていませんでしたが、理解するのに役立ちました。良い記事をありがとうございます!!