@Adám Allowing small ⍵s for ⌺. It could be Extended's way, it might be something different, but at least it shouldn't throw DOMAIN ERROR at the user's face just because it's too small.
Ah, as in if you want more than one cell, you must enclose the list of indices. If you want more than one trim, you must enclose the list of trim lengths.
Hmm. I was thinking in terms of filters ↓ imposes, so overlaying those filters (with ∧) gives a filter that trims maximal lengths from both sides. For ↑, that would be taking maximal lengths from both sides (by overlaying the filters with ∨)
So ↓ can essentially extract an infix while ↑ can extract an outfix, maybe
@Adám Extracting a multi-dimensional infix sounds OK to me because the result is a contiguous subarray (and you can get any contiguous subarray with appropriate left args), while a multi-dimensional outfix might sound weird (possibly because of the symbol ↑, and possibly because the implied overlay combiner is ∨ but interaction between multiple axes is always ∧).
APL, the only programming language where Microsoft Windows' window action buttons _ ⎕ × is meaningful code (at least if you enter _←× or similar when prompted).
@Memberfor3months Sure, but that's because Jelly ignores unknown characters. In HTML those characters do even more, namely print the Unicode characters with the code points corresponding to the characters given.
Btw, _ ⎕ × issues a prompt where entering _←× assigns the × function to _ and returns the × function. Now the value from ⎕ is substituted for ⎕ and _ has a value, so we have × × × which is the 3-train ××× that APL answers with. Try it online!
Now, while APL of course has a built-in to reverse arrays, with what you know, write a function that takes a vector and reverses it: {your code}'abcd' should give 'dcba'
trying a couple of different things in the interpreter (or wtv you are using to run APL code) is perfectly natural... also don't forget to check the small pieces that compose your possible solutions are acting as they should when taken apart
@matt If you haven't quite left yet, btw I mean you should ignore any indexing and just write an APL expression to give (length of array),(lenght of array-1)
@matt But it's also perfectly fine to go away and come back
@Adám yes... it just upsets me, you know? Now I have ⎕IO←0 by default, like a good mathemagician. So I wrote the solution and noticed I needed a little nudge to make the indices work. So I thought "oh wow, I cannot believe this is one situation where ⎕IO←1 just works better", so I changed ⎕IO with my hopes up! Only for them to be crushed :D
@matt please notice that "RGS learned it quite quickly" is a subjective statement! Supposedly this is an easy task and I also needed a couple of tries to get everything correct :P
@RGS It's a double-edged sword unfortunately. For example, many of the contest problems have this "toy problem" vibe to them - but if you want people to attempt something more realistic you have to give lots of context and generally the problem might be simpler but require more reading and interpreting
Tongue-in-cheek. The APL community does seem more personal, tight-knit, and long-living than that of other programming languages. APL programmers often self-identify as "APLers".
That said, there's no central organisation (in fact, APL is less uniform across implementations than most languages) and people have successfully left while still keeping cordial with those that stayed, so no, it isn't a cult.
@xpqz I think the newest announced ones are for low-precision floats, which APL doesn't use. The important instruction set is VBMI, which is in Ice Lake.
But I would say even Dyalog doesn't use SSSE3 to the full extent, and that's 14 years old. It's more an issue of implementers understanding vector extensions than the extensions supporting APL operations.
@matt I can only speak for myself as a newbie like yourself - learning APL is a rewarding pursuit, but the initial slope of the learning curve is steep for sure. Stick with it.