[Python-ideas] An Alternate Suite Delineation Syntax For Python? (was Re: [Python-Dev] [PATCH] Adding braces to __future__)
Ron Adam
ron3200 at gmail.com
Sat Dec 10 08:33:01 CET 2011
On Sat, 2011-12-10 at 15:06 +1000, Nick Coghlan wrote:
> One-liner accumulator function:
> def acc(n) {: s=n; return {: def (i) {: nonlocal s; s += i; return
> s}}}
>>> def acc(n):s=n; return lambda i, s=s: s+i
...
>>> a = acc(2)
>>> a(1)
3
>>> a(3)
5
>>> a(7)
9
;-)
In your example returning an unnamed function is a new feature in
addition to the braces. It would probably need to be more like this...
def acc(n){:s=n; def add(i){:nonlocal s; s+=i; return s};return add}
There are a couple of issues to work out. Statements (def, class, for,
while, and with) don't work after simi-colons. There may be others.
Outside those issues, all you really need is an exit suit token. The
colon can still be the open suit. Two semi-colons could do it.
def acc(n):s=n; def add(i):nonlocal s; s+=i; return s;; return add
The real issues are in getting the statements to work.
Cheers,
Ron
More information about the Python-ideas
mailing list