I should be able to write lambdas / comprehensions in QL

(User Story, Investigate , Priority: High, Test Status: No automated tests yet , Reported By Justin du Coeur, )
Summary: I'm hitting a lot of mildly complex cases where I'm trying to write a QL expression and being forced to do it as multiple functions in order to get $_context and parameters. These should be lambda expressions, dammit!
Example: in ARC, I have the Item model. Item has a List of Starting Players. For each Starting Player, I want to print out a copy of the Item Card. How do I do this? I want to iterate over Starting Player, and print the Item for each one. But by the time I'm inside the iterator, I've lost the reference to the Item!
Conceptually, I want a map() operator containing a lambda, using the outer value of the iterator over Item.

Indeed, thinking about this a little more, what I really want is probably for comprehensions a la Scala. That would certainly give me exactly the behavior I want, and might work most of the time. Should those be built out of nested maps, the way Scala does? Maybe. The starting point might be
Item._instances -> 
  _foreach($item => Starting Players._map(""... *item card guts* ...""))
and that might evolve into
for (Item._instances => $item, Starting Players => $player) ""... *item card guts* ...""
using the same underlying _map function. (Or something like that. What's the most consistent syntax? Don't assume Scala is correct: I'd like to retain QL's strong left-to-right bias.)

Possibly even better, just reify the notion that => formally means "map" (whereas -> means "assign"), and establishes a closure over everything under it:
Item._instances => $item
Starting Players => $player
""... *item card guts* ...""
That is, the => operator establishes a comprehension, of everything after it by default. If you need something fancier, you scope that with braces:
Item._instances => $item
  Starting Players => $player {
  ""... *item card guts* ...""
  } ->
""#### Items for [[Display Name]]

____
""
So the scope for a comprehension is by default until the end of the QL expression, and you reduce the scope with braces.