I'll lend a supportive voice here: I like the proposal and would probably make use of this kind of syntax quite a bit, but I think the requirement of yield is definitely a necessity. Too much ambiguity without it.
And adding the yield, IMO, doesn't clutter things up too badly. Using one of the code examples, it looks pretty good to me:
[
for row in matrix:
[
for cell in row:
yield f(cell)
]
]
Of course, anything that does not contain a yield statement would need to be a syntax error or it could cause problems when refactoring from "regular" looping code, and forgetting to add the yield.
---
Ricky.
"I've never met a Kentucky man who wasn't either thinking about going home or actually going home." - Happy Chandler