@cairdcoinheringaahing should Adams request get nuked? if i click on that chat.stackexchange.com link i can see the message that he requested to be nuked.
@Adám how do i know if smth is a matrix or a list of vectors, like why do we need to mix into a matrix
is there a huge difference between them or r they interchangeable?
also if im understanding rotate correctly if i give a matrix and a vector of nums to rotate, then it will rotate each column of the matrix by the corresponding value in the vector? or is it each row?
@AidenChow You can see how it prints, ask for its shape, and/or depth.
@AidenChow They are rarely completly interchangable. If you need to treat each row as a unit, use a vector of vectors. If the elements all need to be addressed equally, or if you need performance, use a matrix.
@AidenChow v⌽m rotates the rows while v⊖m rotates the columns.
@AidenChow Phase 1 has extensive set of test cases that are immediately checked against, and the best participants are then judged by actual people. Phase 2 only does a syntax sanity check upon submission, and the test case set is run at judgement time, after which the judges look over the code and score clarity and use of APL.
Every year, some people ask that we blanket publish all solutions after the competition. One of the reasons we don't do it, is to avoid the risk of embarrasing people.
We've of course considered that, but it might still come back at someone, and especially phase 2 can be easy to identify based on style. Safer to let people self-publish (and add an entry on the APL Wiki for discoverability) if they feel like it.
I think I can access everything, at least with some effort, but not "anyones" in particular, as I don't know the identity of the submitter until chosen as a winner.
We want to avoid bias on people we know, so competitors are only identified to the judges using ID numbers.
@AidenChow no need to be so harsh on yourself - I've been doing apl on and off for 4 years now and I'm still really horrible at it and get headaches after a while :p
I've not needed it until today, but it struck me that it would be nice to be able to see/query the session's view of its config state -- if you write an application, it might be good to be able to tell if a feature you rely on has been disabled by the user. I suspect it's already possible; I've not checked.
@Adám Does the job nicely; thanks!
Is it possible to pin the Dyalog version the Jupiter kernel should use? It seems to always pick the one with the largest version number if there are several.
Hi! I was interesting to learn about multithreading in APL. I've tried to run this: {⍎'(⍎&''solver ''''',⍵,''''''')'}¨'02-swarming-ant' '02-swarming-ant' solver '02-swarming-ant', is executed in about 30s and the line above is executed in 1min, so apparently it starts two threading but they aren't executed at the same time.
& launches so called green threads, i.e. threads that APL manage and divides its processor time between them, but there's still only one OS thread. You need isolates if you want multiple OS threads.
> Write an APL function that given a right argument Y of any array and a numeric scalar or vector left argument X returns a Boolean indicating if the left argument is a valid argument for X⍉Y, like the result of {0::0 ⋄ 1⊣⍺⍉⍵} but does not use ⍉ (to test the arguments).
Note: From next week, March 17, these sessions will begin two hours later, at 15:00 UTC — also beware of daylight savings time changes.
20.0 will be able to match the length without duplicate work: =⍥≢∘⍴∧⍋⍤⍋⍛≡⍤∪⍤⊣
But =⍥≢∘⍴∧{r≡⍋⍋r←∪⍺} is probably easier to read.
So we can read this as "length of left argument and shape of right argument must match, and the left argument must be a permutation vector but where duplicates are allowed".
So there are really only two rules, and the first one is actually artificial. Dyadic ⍉ could limit itself to transpose the ≢⍺ leading axes.
I am trying to create an APL function which returns differences (non-identical items with identical index) between two vectors.
I have come up with the following and it works fine, subtracting two vectors and discarding zeroes from the result:
func ← {((⍺-⍵)≠0)/(⍺-⍵)}
However, I was not satisfie...