On Tue, May 31, 2016 at 11:13:30AM -0700, Brendan Barnwell wrote:
# okay name -> sympy.Symbol()
I don't like this that much, because it looks odd to have the expression on the right without the argument. The syntax doesn't make it at all clear how the T gets used on the RHS.
You have to learn it, just like you have to learn decorator syntax. It's literally a *one sentence explanation*:
"The name on the left hand side is passed to the function on the right hand side, as a string, as the first positional argument."
But this is allowed:
my_name -> f(g()) # like f('my_name', g())
So. . . what exactly will be allowed?
Guido suggested that we restrict it similar to the restrictions on decorator syntax. I'd be okay with that. Without looking up the syntax, from memory:
@decorate @name.decorate @factory() # no arguments, returns a decorator @factory(args, keyword=foo)
and possibly a few others. So by analogy:
x -> Function() x -> module.Function() x -> module.Function(args, keyword=foo)