@Adám I meant something else, but now I realize it was a wrong approach
@Adám but the question stays interesting anyways, can I make a Cartesian product between a set of operators and a set of data and apply the operator on the data in each pair?
@RosLuP I disagree. I find ' '(≠⊆⊢)'here is some text' and +⌿÷1⌈≢ are more readable than ' '{(⍺≠⍵)⊆⍵}'here is some text' and {(+⌿⍵)÷1⌈≢⍵} while very long trains (especially with several parentheses) are indeed hard to read.
@Adám I was wondering how I could make the equivalent of a :While loop in a Dfn, is that possible? I remember you telling me that ¨ acted like a :For loop a few weeks ago
@Adám the thing is, with ⎕IO←0, my function gives the wrong result. z←⍬ 1 f 2 5 is 2 2 5, but z←z 2 f 2 5 should yield 2 2 5 2 2 5, not 2 2 5 2 2 2 2 2 5
@cairdcoinheringaahing (We might remove this in the next version, but as it stands) APL tries to protect you against accidentally losing your work by overwriting a function with data or vice versa.
@cairdcoinheringaahing … so you have to )erase name before re-assigning. )clear erases everything.
@Zacharý They are all ISO APL dialects. ngn/apl is basically modelled after Dyalog APL and so is more or less a (very restricted) subset, only adding a few special operators and some JavaScript specific functionality. Dyalog APL is almost fully aligned with ISO APL, but adding lots of features (both primitives, system functions, OO, and syntax). GNU APL is pretty much an ISO APL implementation, but with some influence from Dyalog (limited dfns) and a few added features.
If I was on my old computer (broken now :( ), I would test that on GNU APL. But the changes seem pretty reasonable (except maybe the ⊂, that doesn't make sense to me)
@Zacharý Dyalog has f// meaning (f/)/ while it is undefined in ISO APL, i.e. it could mean that it is f(//). Remember that ISO APL is a spec, not an implementation.
@Zacharý Everybody agrees that ((1 2)(3 4))[2] is ⊂3 4.
@Zacharý Whenever you square-bracket index, the result must have the same shape as the indexing array. Since 2 is a scalar, the result must be a scalar.
I know, I was saying that if something is in a specification, that doesn't mean it will be in an implementation of that language. And how on earth does one obtain NARS APL?