@TessellatingHeckler there ⍣ is getting a number argument, which is "repeat n times" (which is completely distinct in behavior to "until" which has a function right operand)
@Bubbler "?3⍴" makes a powershell string, the space breaks the powershell string so it becomes a right argument, a temp variable Y gets 0, then the code becomes '?3⍴ Y' sent into APL's ⍎
whew. I now sort of understand why my directory objects don't work the same way, can run PS from APL, and have the commandlet set some debugging variables in the surrounding session
(Sorry for spamming this room with so much stuff that isn't directly APL, but I'm very happy with this progress, and grateful for the help :) )
@Moonchild So with fresh A, B, A B ← 1 just does multiple assignment. If B ← + then A B ← 1 attempts to do modified assignment; if A and C are 1 and B is +, then A B C ← 5 assigns 5 to C and returns 6; what is the 4th thing?
@Bubbler let's pretend I covered that with a (b c d←) x :)
but yes, the whole thing is a mess. I'm not entirely sure I agree with bqn's removal of all syntactic ambiguity, but I definitely don't agree with how ambiguous modified|multiple assignment is
@TessellatingHeckler Ravel simply reshapes to a vector. It is equivalent to ×/⍤⍴⍴⊢. Enlist destroys all structure to create a simple vector. Materialise converts .NET collections to arrays of objects (similar to [...x] in JS) and gets the default property if one exists.
@Adám I see; does that mean "when we introduce the new array notation multiple assignment without () will be disallowed" or do you mean only with the new notation it will not be allowed?
@ngn Depends on language. Of the languages I mentioned, only python and perl have ever broken compatibility. Python isn't likely to ever do so again, and perl5 is planned to be maintained indefinitely
@ngn fair enough. Still not a very a common occurance
@Bubbler and that seems to happen more frequently: version 'n+1' of a language is just a completely different language. Same thing happened with d1 and d2
@Bubbler seems to be a bug in @Adám's safe executor
@Bubbler actually seems to happen when any part of the expression is shy. For now I think I'll just make it print all expressions, even shy ones; there's not much point in asking a bot to evaluate something without seeing the result
⋄s←'hello world'⋄2/s
hmmm. Not sure why that didn't work, but I'm off to bed now. Will take another look tomorrow
In what "traditional" programming languages does one index with () instead of []? I can only think of Matlab :P I've read twice now that "APL uses [] to index as opposed to (), which is what many programming languages use"
...not to mention k (or should I let ngn jump on this one?) In k, you can use [] for indexing, but you can also just apply arrays to arguments, same as functions. So (5 6 7) 1 ←→ 6
bot updates: multiline code (with separators or four-space prefixed) is recognized correctly, as is backtick-fenced code. Shy results behave appropriately. And for IRC, html is automatically stripped (but links are preserved), so output should be prettier
@RGS IRC is decentralized(-ish) and not persistent. So there is no 'original message'. You send your message to the server, the server sends it to all the other clients, and then it's gone from the server. Other way—I am considering putting the SE message IDs in the IRC messages, but I think it wouldn't be that useful and act as visual clutter. (IRC doesn't have markup for anything other than colour.)
<moon-child> TessellatingHeckler: yes, IRC bouncer. (Actually, I run weechat in screen connecting to a znc on the same host, but in principle I could run the IRC client locally and get most of the same benefits.)
<klg> Probably the most feature-full bouncer. I used to use it with various graphical clients, but stopped one day when I realized I'm just running irssi under screen on the same host and the only thing znc gives me is more ways to fail
bit weird behaviour with the .net bridge and data types
Trying to make these two behave identically:
⍎ "{+/⍵}" (1,2,3) (1,2,3) | ⍎ "{+/⍵}"
They both turn into the charvec '{+/⍵} Y' and in the first, Y is a variable of the disclosed powershell data, (maybe materialised?) and it works. The second is an APL array of the pipeline items one at a time ... and throws a DOMAIN ERROR.
I guess the int32s are being boxed to System.Object, but if I do ≢⍵ it is 3, ⊃⍵ is 1, ⍵[1 2 3] gets three numbers which come out as int32
gotta read up on trapping errors and finding the longer error message somehow