« first day (1064 days earlier)      last day (1593 days later) » 

12:00 AM
@EdgyNerd APL. For sure. Only exception is J if it happens to have a needed built-in, like for primes or diagonals.
 
 
2 hours later…
2:24 AM
@Adám Sure, no problem
 
 
6 hours later…
8:27 AM
@dzaima Is there any way in dzaima/APL to catch "unknown token" errors?
 
 
2 hours later…
10:33 AM
@dzaima Why does ^ give NYIError: no built-in ^ defined in exec while other symbols give unknown token?
 
 
1 hour later…
11:51 AM
@Adám not currently, though I have no idea why I made them quietly just get skipped
@Adám I just have a list of symbols that might or might not be candidates for built-ins (because code-page), but the code execution part doesn't recognize them (i.e. ⌻⌼⍃⍄∍⋾∞ & many more do that too)
 
@dzaima Why does it have duplicates?
 
@Adám it doesn't?
the \\ is an escaped backslash
 
@Adám the "+-/⍳⍬⍴∘⎕⊂÷⍺⍵≢¨" at the end is still a comment
 
@dzaima Ah,
@dzaima Perfect symbol for non-enclosing reduction: :-)
 
12:06 PM
@Adám pushed making unknown tokens errors (though to note is that {$} alone is gonna error, unlike dyalog)
 
@dzaima That's fine. I'd use to test with anyway.
I wrote a program to test APLs for homoglyphs:
 dialect Test tests;Run;t;url;code;⎕IO;Hex
 ⎕IO←0
 Hex←(⎕D,⎕A)⌷⍨⊂
 url←'raw.githubusercontent.com/abrudz/TIO/master/Run.aplo'
 code←(⎕SE.SALT.New'HttpCommand'('GET'url)).Run.Data
 2 ⎕FIX''⎕R''⍠'ResultText' 'Nested'⊢code
 :For t :In tests
     :Trap 0
         :If ~':'∊('apl-',dialect)Run⍨t
             ⎕←⊃{⍵,': ',((⎕UCS 16∘⊥),' U+',Hex)⍎⍺}/'\(⎕UCS 16⊥(.*)\)' '⍝ (.*)'⎕S'\1'⊢t
         :EndIf
     :EndTrap
 :EndFor
Where test is vector of character vectors:
⍎⎕←'1',(⎕UCS 16⊥2  2  0 10),'1' ⍝ Epsilon
⍎⎕←'1',(⎕UCS 16⊥2  2  0  8),'1' ⍝ Epsilon
⍎⎕←'1',(⎕UCS 16⊥2  2  1  2),'1' ⍝ Minus
⍎⎕←'1',(⎕UCS 16⊥0  0  2 13),'1' ⍝ Minus
⍎⎕←'1',(⎕UCS 16⊥2  2  2  3),'1' ⍝ Modulus
⍎⎕←'1',(⎕UCS 16⊥0  0  7 12),'1' ⍝ Modulus
⍎⎕←'1',(⎕UCS 16⊥2  2 12  6),'1' ⍝ Star
⍎⎕←'1',(⎕UCS 16⊥0  0  2 10),'1' ⍝ Star
⍎⎕←    (⎕UCS 16⊥2  2  3 12),'1' ⍝ Tilde
⍎⎕←    (⎕UCS 16⊥0  0  7 14),'1' ⍝ Tilde
⍎⎕←'1',(⎕UCS 16⊥2  3  7  1),'1' ⍝ Nor
⍎⎕←'1',(⎕UCS 16⊥2  2 11 13),'1' ⍝ Nor
⍎⎕←'1',(⎕UCS 16⊥2  3  7  2),'1' ⍝ Nand
 
@Adám well, the only one dzaima/APL has is & which isn't on the test :)
 
@dzaima Sure, and there are a lot more that could be added, but they are either dialect specific or no dialect support any alternatives, so they don't really contribute to a comparison across dialects.
 
 
1 hour later…
1:16 PM
@dzaima the inverse of an inverse of a function with a defined obverse borks tio.run/##SyzI0U2pSszMTfz/P@1R2wQNw0cdM7Q1H/…
@Adám also for apl-extended
 
@KritixiLithos just (-⍣¯1⍣¯1) 10 alone doesn't work. I just haven't defined inverse for
 
@KritixiLithos Yeah, that I'm aware of due to how it is implemented. Too complicated to fix. Let's hope for a native in 19.0
 
1:30 PM
@KritixiLithos fixed
@Adám pretty sure this is wrong
 
Me too. ⍨
 
tried implementing inverting of and got the same bug \o/
my problem was that I implemented inv⍵[A (f⍨) B] as B (inv⍵[f]) A, but it should be B (inv⍺[f]) A (inv⍵[x] being like ⍣¯1 and inv⍺[x] being f⍨⍣¯1⍨)
hard to test for me as almost no built-ins in my apl support inv⍺ and it can't be defined by
oh, my derived monadic ops don't even have the function calls for inv⍺ yet :|
 
1:49 PM
@dzaima :D
 
still have to understand and define inv⍺[A(f⍣C)B] though
@dzaima dyadic ops don't have it either. yay for past me laziness
@dzaima is (X (f⍣C) A) ≡ B even solvable for X in basic operations?
 
@dzaima I can tell you that Dyalog's internal system for inversions is complex indeed, and there are even cases that will crash the interpreter:
⎕←⍕⍣¯1⊢''
 
@Adám
VALUE ERROR
 
Or not ;-) Well, try it online!
 
@dzaima I could defined it for when C∊¯1…1 but I believe all other cases would require more info from f than inv⍺[f] and inv⍵[f]. is it worth it?
 
@KritixiLithos Huh, you fixed it?
 
@dzaima how does that inv notation work?
@Adám apparently, I modified obv and the obv∧... checks
 
@KritixiLithos inv⍵[A f B] asks to solve B ≡ A f X for X; inv⍺[A f B] asks to solve A ≡ X f B
 
how does dyadic inverse work anyways? -⍣¯1 appears to be -
 
@KritixiLithos OK, pushed. However, I fear something has happened to Dennis.
 
2:12 PM
nvm figured it out, 10∘-⍣¯1⊢210-⍣¯1⊢2
 
@dzaima i.e. inv⍵[A + B] (or just inv⍵[+]) is B - A (or just -⍨) because B = A + (B - A)
 
@KritixiLithos X(f⍣¯1)Z asks for a Y such that Z≡X f Y
@KritixiLithos Yeah, and @ behaves the same.
 
am i correct that Dyalog is using a numerical solver for 9((1+×)⍣5⍨⍣¯1)10?
 
@dzaima is that not X(f⍣¯C)B?
 
@KritixiLithos that there breaks that.
 
2:18 PM
which ?
 
@dzaima I don't know of a way to detect that without attaching a debugger, other than measuring runtime. This one sure is very fast, like 100 ns or so.
 
@KritixiLithos the only one?
 
where is in ` (X (f⍣C) A) ≡ B `?
 
@KritixiLithos oh, i didn't look at what message you were replying
@KritixiLithos we want to solve for X
 
ah, my bad
⋄f←((1+×)⍣5⍨)⋄⎕←9 f 9 f⍣¯1⊢10
 
2:28 PM
@KritixiLithos
0.8999371946
 
I'm confused, shouldn't this give 10?
 
tl;dr f⍣A⍨⍣¯1 is broken
afaict the right action is either to do numerical approximation or domain error (or solve the function symbolically though that's probably way too much work)
 
@KritixiLithos Yeah, this sure looks suspect:
⋄ f←1+×
⋄ ⎕←9 f  ⍨⍣¯1⊢10
⋄ ⎕←9 f⍣1⍨⍣¯1⊢10
 
@Adám
1
0.8
 
j can't even do 9 (1+*)^:_1]10
 
2:37 PM
 
@KritixiLithos dzaima/APL can't too, but I'm pretty sure inv⍵[A f g] is implementable
half-relatedly, why is f←⍣¯1 not allowed in TIOs code box but is in the REPL?
 
@dzaima ikr. Somehow, ⎕FIX doesn't like tacit operators. Even ¨ fails. Hm, I thought I had logged that one. I'll do so now then.
@dzaima Ah, it has been fixed in 18.0.
 
4:02 PM
implemented stuff. that's enough of ⍣¯1 for today.
 
 
1 hour later…
5:11 PM
@dzaima That's one epic commit message: f⍣¯1[⍨]⍣¯1, ⍟⍨⍣¯1, -⍨⍣¯1, +⍨⍣¯1, *[⍨]⍣¯1, ⍨⍣¯1, (A f g)[⍨]⍣¯1
 
 
3 hours later…
7:43 PM
@Adám actually i found a silly mistake, 1⊣⍺⍺ ns borks for non-obverse functions
maybe check that it is an object, then 1 if .NrmFn exists 0 if it fails
 
@KritixiLithos Can you PR?
 

« first day (1064 days earlier)      last day (1593 days later) »