질문
I've heard it said that multiline lambdas can't be added in Python because they would clash syntactically with the other syntax constructs in Python. I was thinking about this on the bus today and realized I couldn't think of a single Python construct that multiline lambdas clash with. Given that I know the language pretty well, this surprised me.
Now, I'm sure Guido had a reason for not including multiline lambdas in the language, but out of curiosity: what's a situation where including a multiline lambda would be ambiguous? Is what I've heard true, or is there some other reason that Python doesn't allow multiline lambdas?
답변
Guido van Rossum (파이썬의 창시자)은 이 정확한 질문에 대해 오래된 블로그 글에서 직접 대답합니다.
기본적으로, 그는 이론적으로 가능하다고 인정하지만, 어떤 제안된 해결책도 파이썬스러운 것은 아니라고 인정합니다:
"하지만 이 퍼즐에 대한 어떤 제안된 해결책의 복잡성은 내게 있어서 엄청납니다: 이는 파서(혹은 보다 정확하게는 렉서)가 들여쓰기에 민감한 모드와 민감하지 않은 모드 사이를 왔다갔다 할 수 있도록 하고, 이전 모드와 들여쓰기 수준의 스택을 유지하는 것을 요구합니다. 기술적으로 모든 것이 해결될 수 있습니다(이미 일반화될 수 있는 들여쓰기 수준의 스택이 이미 존재합니다). 하지만 이 모든 것이 복잡한 루브 골드버그 장치라는 내 직감을 없애주지는 않습니다."
댓글