@RubenVerg It isn't a list of scalars, but a matrix with one number represented in each column, so ,⌿ catenates each column to a vector, giving a vector of vectors.
@RubenVerg afaict, you only ever use the argument once, in ⍷¨∘⍵ which means you could convert to a tradfn body, replacing ⍵ with ⎕ and saving the outer braces.
Yes, but iiuc, it was one of a very large number of optimisations done by a single developer, several of which turned out to have faults. So we ripped out all this person's optimisations, adding them one-by-one, carefully.
As an anecdote, this explains our odd version numbering: 17.1, 18.0, 18.2. The 18.2 is actually a 17.2 because 18.0 was abandoned due to those optimisations being so widespread.
@Adám this sounds like a variation of the classic cheater dilemma - if you find evidence that some person"s feats were cheated, do you claim they're all cheated and then analyze each to deicide if they're genuine or do you keep them and analyze each for cheating?
This optimization stuff is really interesting. Do you actually substitute APL code with faster APL code for the optimizations? I thought they'd be done in C or something
I think every instance is in C. It could be done using APL, though.
Btw, you can't just substitute ⊃⍋ with {⍵⍳⌊/⍵} as the latter ignores a left argument and can be an operand. ⊃⍋ with a number on the left picks the nth first, but cannot be used with an operator without composition/training.
@RubenVerg 1. Because adverbs (monadic operators) didn't exist at the time when ○ was designed. 2. because it allows useful things with outer product etc.
I don't have access to a standard Dyalog install on mobile, but tryapl's execute doesn't do what the docs say (though I'd expect it to be custom implemented to maintain the sandbox)
From my search, it seems like the last conversation about this topic here was about 5 years ago, so... since then, has there been any development (or at least serious discussion) about APL/BQN and game development?
From what I've seen, the best bets right now would be using stuff like Py'n'APL with Pygame, or Lua*APL with Love2D, or some Rust + Game lib + BQN hackery... which could work but doesn't seem promising