News for hackers. Stuff that matters.
Re:BQNPAD by ithkuil on Friday May 12, 2023 @11:58AM (#35918014)

        "APL"+{โŠ‘(+`โŒฝ)โŸ๐•ฉ 1โ€ฟ1}ยจโ†•3
    "BQN"

(https://bqnpad.mechanize.systems/s?bqn=eyJkb2MiOiIjIFdlbGNvb...)
Re:BQNPAD by teddyh on Friday May 12, 2023 @12:27PM (#35918408)
Python:

  "".join(chr(ord(c)+1) for c in "APL")
  โ†’ 'BQM'
Re:BQNPAD by ithkuil on Friday May 12, 2023 @02:04PM (#35919784)
The comment you're replying to is the BQN code that adds a Fibonacci number to each letter of the "APL" string.

You're python code is spelled just "APL"+1 in BQN.

Array languages implicitly so a "foreach" when there is a scalar operand

Re:BQNPAD by teddyh on Friday May 12, 2023 @05:29PM (#35922662)
> * The comment you're replying to is the BQN code that adds a Fibonacci number to each letter of the "APL" string.*

Oh, right.

> [Your] python code is spelled just "APL"+1 in BQN.

Apparently APL has very weak typing, if "A"+1 is "B".

Re:BQNPAD by dzaima on Friday May 12, 2023 @05:55PM (#35922988)
APL doesn't do this character arithmetic; BQN does. But it's not weak typing, it's an intentionally designed feature[0]; so things like "a"+1.2 or "a"+"b" error. It's quite useful too - you can add the null character to a number (or list of numbers) to convert code points to respective characters (or subtract to do the inverse). Or do things like '0'+x to convert a list of numbers to a string of digits (and x-'0' for the inverse); or 'a'+โ†•26 (โ†•26 being a list of the numbers 0โ€ฆ25) to generate the alphabet.

(it's the same logic that's behind any language with pointers - you can add a number to a pointer, subtract a number from a pointer, and subtract two pointers to get a number)

[0]: https://mlochbaum.github.io/BQN/doc/arithmetic.html#characte...

Re:BQNPAD by ithkuil on Friday May 12, 2023 @06:26PM (#35923294)
Well said.

Your average "very weakly" typed language will happily do "APL"+1 == "APL1"