Comment by vishnudeva
Comment by vishnudeva 3 days ago
+1 for Reflex. Truly amazing.
Comment by vishnudeva 3 days ago
+1 for Reflex. Truly amazing.
I think my answer: I have no idea what multi-line lambdas are, probably explains why I find Reflex (or Rio/Streamlit, etc) amazing, haha
For a person with zero front-end knowledge, it's a game changer.
In JavaScript you can do this:
const f = (x, y) => {
const z = x + y;
const w = z * 2;
return z - w + x;
};
In Python, you cannot do this: f = (
lambda x, y:
z = x + y;
w = z * 2;
return z - w + x;
)
Instead, you need to pull it out into a def: def f(x, y):
z = x + y;
w = z * 2;
return z - w + x;
Sometimes, this is no big deal. But other times, it's damn annoying; the language forces you to lay out your code in a less intuitive way for no obvious benefit.Actually you can. If you really want a multi-line lambda with your example...
```f = lambda x, y: [ z := x + y, w := z 2, z - w + x, ][-1]```
* That version does look strange, as it uses a list in order to get that last calculation. But I often use lambdas to check results in parametrized tests, and they naturally spread to multiple lines without the list hack since they're chains of comparisons.
Either name them, or squeeze multiple expressions into a tuple. More can be done, now with walrus.
How is it writing React without multi-line lambdas?
They are everywhere in JavaScript and I couldn't imagine my day-to-day without them!