Re:Coconut: Simple, elegant, Pythonic functional programming
by anoctopus on Tuesday November 09, 2021 @01:31PM
(#29165428)
No statements means no locals, which is sometimes bad for clarity and/or performance. Functional langs without statements have let-bindings.
[ Parent
| on HN ]
Re:Coconut: Simple, elegant, Pythonic functional programming
by gilch on Wednesday November 10, 2021 @08:12PM
(#29183261)
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.