Hacker News new | ask | show | jobs
by anoctopus 1686 days ago
No statements means no locals, which is sometimes bad for clarity and/or performance. Functional langs without statements have let-bindings.
1 comments

That's really not true either. The lambda parameters are locals [a]. A let-binding is just a lambda that you call immediately. You can use defaults so the value doesn't have to appear as an argument [b]. Also, Python has assignment expressions now [c], and comprehensions are expressions which can have their own locals [d].

    >>> (lambda a, b=2:
    ...   print(a, a, b, b, c:=3, c, *[[d,d] for d in [4]][0])
    ... )(1)
    1 1 2 2 3 3 4 4
That's four different ways to get locals with no statements.