Re:KlongPy: High-Performance Array Programming in Python
by amarcheschi on Monday December 02, 2024 @11:44AM
(#42297884)
I'm gonna be the one who asks the dumb question, but someone has to do it: why are expressions evaluated from right to left?
[ Parent
| on HN ]
Re:KlongPy: High-Performance Array Programming in Python
by bear8642 on Monday December 02, 2024 @12:35PM
(#42298364)
Because that's what APL does: https://www.jsoftware.com/papers/EvalOrder.htm
It also simplifies things as no need to implement BIDMAS
Re:KlongPy: High-Performance Array Programming in Python
by abrudz on Monday December 02, 2024 @02:05PM
(#42299265)
Think "normal" call syntax like
foo(bar(baz(42)))
and then remove the superfluous parens foo bar baz 42
The expression is evaluated from right to left.Now, let's make two of the functions into object members:
A.foo(bar(B.baz(42)))
Remove the parens, extracting the methods from their objects, instead feeding each object as a left argument to its former member function: A foo bar B baz 42
This is normal APL-style call syntax; right-to-left if you want.
Re:KlongPy: High-Performance Array Programming in Python
by amarcheschi on Thursday December 05, 2024 @04:37PM
(#42333058)
Oh now I see it, it sorts of reminds me of lambda calculus
Re:KlongPy: High-Performance Array Programming in Python
by RyanHamilton on Tuesday December 03, 2024 @05:38PM
(#42312404)
Thanks for asking. I would guess you're asking as someone that spent years learning math notations and being taught BODMAS operator precedence. The funny thing is that if you took a 3 year old child and taught them right to left it's actually more natural than multiplication before addition. Array languages often take a fresh first principles approach rather than regurgitating common learnings. This does mean programmers from other languages can find it more confusing than total beginners.