Python では複数行のラムダは使えません。なぜでしょうか? 質問する

Python では複数行のラムダは使えません。なぜでしょうか? 質問する

複数行のラムダは Python の他の構文構造と構文的に衝突するため、Python では追加できないと聞いたことがあります。今日バスの中でこのことを考えていたのですが、複数行のラムダが衝突する Python 構造を 1 つも思いつかないことに気付きました。この言語をかなりよく知っている私としては、これには驚きました。

さて、Guido が言語に複数行のラムダを含めなかったのには理由があったと確信していますが、好奇心から質問します。複数行のラムダを含めると曖昧になる状況とはどのようなものでしょうか? 私が聞いた話は本当ですか、それとも Python が複数行のラムダを許可しない別の理由があるのでしょうか?

ベストアンサー1

グイド・ヴァン・ロッサム(Pythonの発明者)は、この質問に自ら答えています。古いブログ投稿基本
的に、彼はそれが理論的には可能であることを認めているが、提案された解決策はどれも Python らしくないだろう。

「しかし、このパズルに対する提案された解決策の複雑さは、私にとっては計り知れないほどです。パーサー(より正確には、レキサー)が、インデントを感知するモードと感知しないモードを切り替え、以前のモードとインデントレベルをスタックしておく必要があります。技術的にはすべて解決できます(すでに一般化できるインデントレベルのスタックがあります)。しかし、どれも、すべてが複雑なものであるという私の直感を消し去るものではありません。ルーブ・ゴールドバーグの仕掛け

おすすめ記事