Debugging Question: I have something of the form {...}⍣{...⍺}⊢... in which all pieces work along. But together, I get a Value Error pointing at the poor ⍺ in the second expression...
Can't figure out what that could possibly mean. I can't even print the ⍺ with {⎕←⍺ ⋄ ...⍺} because then I just get a value error when I try and print
If I use ⍵ instead, I get a different error elsewhere which still doesn't make sense... But is that better?
The other question about the monster on the right is starting to make me doubt the sanity of my interpreter. The one error I get after changing ⍺→⍵ is 'LENGTH ERROR: Boolean singleton value required'
@AviF.S. "Can't figure out what that could possibly mean. I can't even print the ⍺ with {⎕←⍺ ⋄ ...⍺} because then I just get a value error when I try and print"
(possibly a good alternative to all of this would be to save the left operand dfn to a variable and make it multiline in )ed so the Dyalog debugger would open on it)
I was avoiding sharing the whole thing since I thought it'd be cheating since it's for the competition thing. But from now on I'm starting off by doing that so I don't waste your guys' time :(
@dzaima I think you may very well be right! Well if any one else likes this/the OneDark theme, would love help. I hate working on it; super indecisive and can never pick a color
@dzaima One more question: Obviously with do⍣until⊢me syntax, do is executed once afteruntil has already been satisfied. This begs the question: What to do if the whole doing logic breaks down as soon as until is met?
Any clever workarounds, or is it necessary to just obfuscate it by adding yet another condition in do, despite it already being noted in until?
@AviF.S. do isn't executed ever after until gives 1. What does happen, though, is that until isn't called before the first execution of do (as there must be 2 arguments given to until)
@dzaima Just trying to get the compiler to a usable speed, really. None of the changes after Pick did that much, and Scan might be a bottleneck. Also pretty easy to write.
@AviF.S. interestingly, in the transcript it's shown as a number. Keeps the behavior of the live chat knowing about deleted messages but the transcript - not
Also can't believe you, and evidently @Marshall have the patience to be responding to yourselves all the time! Someone ought to make a user script to do it. It drives me absolutely BERSERK to do it, personally. I don't unless it absolutely makes no sense without
@AviF.S. this is like the only case where i consistently use a bunch of shortcuts. But yeah, knowing about them is extremely useful (ctrl+number to switch tabs is awesome and i have it configured to work everywhere)
@ab5tract looks extremely pretty, but that seems to be about it. don't see anything about hinting either, and that's pretty much the only thing i need fontforge for..
@Marshall updating ¨ should be pretty easy, considering it has to do individual looping at the end anyways
(i would really love to be able to have a macro for a type-agnostic ¨, but alas, currently still stuck with java)
@dzaima (an acceptable alternative is waiting for valhalla and potentially some @Inline hack)
@dzaima Working out the loops for leading axis agreement is a pain. Probably easier than doing a proper multidimensional take/overtake though. I guess I'll give it a shot.
@Marshall shouldn't this just work? (initially i just wanted to post the last 2 lines - that's an extreme case of wanting to have single lines for equal thing alignment but also long)
@dzaima That should be right. I guess I was conflating it with Rank some, but Rank's harder because you have to do the two loops and then pull out cells.
@Marshall yeah, there's a reason i hadn't implemented APLs ⍤ in dzaima/APL
(mostly unrelated, i wonder how far could an impl go with separating array data from the array objects - it could make things like dyadic ↓/↑ O(1), prefixes O(n), getting a cell O(1) etc)
I do need to figure out what to do about Each on non-arrays though. Reference boxes beforehand, but dzaima applies directly, which I hadn't thought of. And the third option is to error if no arguments are arrays, which I think would be the obvious thing to do if there was only monadic Each but is weird given than array function-each non-array is kind of needed.
@dzaima I think J does this pretty often now. It doesn't sound hard from an implementation perspective, but there's potentially a big issue if a user makes a big array and decides to keep only a small part of it.
Looks like that's also why trying to use the native monadic Each was breaking things. Except it's still breaking things, but only in the compiler and not in the tests...