News for hackers. Stuff that matters.
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?
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.