« first day (2918 days earlier)      last day (26 days later) » 

05:41
@Silas Oh, right, it should have said that.
 
7 hours later…
12:36
Is matrix upper triangular?
yes, indeed.
 
3 hours later…
16:00
0
Q: Dyalog APL does sum `+/` from the wrong end, violating the specification

Jeppe Stig NielsenOf course, many functions f are not associative in the sense that a f(b f c) (which is often just written a f b f c in APL) is not always the same as (a f b)f c. This is also the case when f is addition + of floating-point numbers. Fortunately, in APL there is a simple convention to evaluate from...

 
4 hours later…
19:34
It appears ⎕VGET and ⎕VSET can take a vector of namespaces as the left argument. Is there a reason it doesn't like a matrix or higher rank array?
@PaulMansour My original spec allowed any shape, but I wanted to be conservative. We can always add it if called for.
I'm calling ;)
Well, I s'pose it isn't too late. Can show some compelling usecases?
Well, what's the use case for a vector?
I have a vectors of namespaces all the time, and matrices, but less often
A lot of data is stored as JSON, including arrays of objects. Those are all "vectors of namespaces"
19:40
It was a rhetorical question.
(⍴⍤⊣⍴,⍛⎕VGET) :-)
In APL we obviously have matrixes, so matrices of namespaces will arise. One example is modeling an HTML table of <td> elements.
Yes, nice and I figured it could be done with just simple selective assignment too...
I don't think it need to go into 20, but it just seems like if you allow a vector, there would be no reason to not allow arrays of any rank.
@PaulMansour That's a very good example. OK, I'll take it up.
@PaulMansour I really want to be able to write ⍢, one day…
@PaulMansour Well, for ⎕DT, we do allow any rank, so why not here?
Is that "under"?
Yeah.
19:52
While I have you, is there a keystroke for getting out of an multiline edit situation in the session in V20?
Without having a syntactically correct thing?
Yes, issue a (weak) interrupt. Press the Break keyboard combo, usually Ctrl+Pause although Pause may be hidden behind an additional Fn shifting key. On this laptop (Dell), Ctrl+Fn+B does the trick.
Action>Interrupt from the menu and Weak Interrupt from the systray does the same thing.
Finally, you can assign a keyboard combo to the menu item: ⎕SE.mb.action.interrupt.Accelerator←73 2 makes it Ctrl+I
You can find the numeric code for a keypress by running ]keypress, pressing the key and using the codes from elements 5 and 6
OK, thanks a bunch. Will definitely set up a key for that (or turn off multiline editing!). I feel like it should be Escape but not sure...
Escape (as the traditional way to cancel or, well, escape interface states) would make sense if it wasn't for Dyalog's odd decision to make Escape mean save+close.
20:09
Yes indeed. But I already use Escape to get out of a trace session, so its not too much of a stretch.
@PaulMansour ⎕SE.mb.action.interrupt.Accelerator←27 0 then. To my surprise, it seems to work well, without removing existing functionality.

« first day (2918 days earlier)      last day (26 days later) »