I think it's easier to read the code if you do assignment inside each of the subexpressions. That way you don't need to hold as much code in your head to understand what's going on.