« first day (1654 days earlier)      last day (984 days later) » 

3:00 AM
found it is not attractive to use FFT for convolution because the Stencil has much less overhead
 
3:13 AM
fast fourier transform?
 
Wondering if there has been any "array-friendly" FFT impl
There was a problem on a competitive programming site that literally said "multiply two 300,000-digit numbers". Someone came up with O(n^2) but super low constant solution that passed the test, which was actually faster than some naive FFT impls
 
@Bubbler 4 ginormous results come up in APLcart
 
I used the one from xtimes in dfns workspace, which is exactly same from the one in APLcart
 
@LdBeth unrelated but i just joined sdf and need help with validation
 
3:32 AM
@Razetime what's your login name?
 
razetime
 
done. you can relogin now.
 
thanks a lot
 
 
7 hours later…
10:29 AM
Is there an alternative tacit formulation for (⊢,[0.5]⌽) without bracket axis? I got to (↑⊂∘⊢,⊂∘⌽∘⊢) but its ugliness disturbs me.
 
@xpqz When ⎕io←1?
 
Yeah
I'll take ⎕IO←0, too, if that makes it easier.
 
@xpqz Why the ∘⊢s?
 
For it to work?
      (↑⊂∘⊢,⊂∘⌽⊢)data
LENGTH ERROR
      (↑⊂∘⊢,⊂∘⌽⊢)data
 
↑⊂,⊂∘⌽ or ↑,⍥⊂∘⌽⍨ or ↑⍤,⍥⊂∘⌽⍨
 
10:34 AM
Ah, that's better
 
But yes, we're missing an add-a-leading-axis function.
If we had that (A←↑⍤,⍤⊂) we could write A⍪⌽
 
The operator reminds me Backus' FP
Is there a performance gain for using tacit instead of dfns?
 
So with that I have 1 1⍉⍤2(↑⊂,⊂∘⌽) to get both diagonals of a square matrix. Any better offers?
 
@xpqz For the battle ship problem?
 
@LdBeth Problem 7: Can You Feel the Magic? in Phase 1
 
10:50 AM
my entire solution is (1=≢∘∪)⍉+⌿⍤,⍥(1 1∘⍉,⊢)⌽
 
Ah, that one was yours :) Nice work.
 
ok nvm
 
I remembered I tried to make a proof that only 3 of 4 directions needs to be tested to reduce the size of my answer, but found a counter example
Thus reminds me I made a mistake in original submission
 
 
1 hour later…
12:15 PM
@Adám or ⊢↑⍤,⍥⊆⌽
@LdBeth yeah, I made a mistake too but didn't catch it :(
@xpqz 2 1 1⍉⊢↑⍤,⍥⊆⌽
 
 
3 hours later…
3:00 PM
So JetBrains mono has APL glyph support planned
I wanna help with creating some glyphs so I commented on this issue
anyone else interested?
 
@Razetime Cool. Track that and then we'll add it to APL Wiki when implemented.
 
sure, I'll add it in once full support exists
I've also added the bqn set in the suggestion
 
3:32 PM
@Razetime I think you use one list for APL and one for BQN.
 
RGS
What's that low-level language thing that was discussed a couple of times here
Marshall (and others?) were working on it
Discussing how it would work, etc.
What's the name of that?
I've seen a thread on topanswers about that, once
 
RGS
YES
Thanks
 
(hasn't been worked on for a long time, and very much not complete at all)
 
RGS
(ah thanks for the context!)
 
3:43 PM
TIL that a windowed reduce with a negative window reverses each window before applying the reducing function. That will occasionally be handy.
 
4:04 PM
@Adám i merged the two
 
@Razetime Sorry, typo. I think you should use…
 
ah well
 
 
4 hours later…
8:24 PM
On the BQN forums we're discussing changing some cases that rely on prototypes to be errors instead: First (Dyalog ) on an empty array, and Reshape turning an empty array into a non-empty one. Does anyone know if they rely on these much? What would you think about BQN not supporting them?
 
BQN forums? Is this just the discord server/element channel right
 
Note that it wouldn't be much harder to get a fill from any array: ⊑»1⥊a instead of ⊑0⥊a.
The Matrix/Discord chat, yes.
 
IMO that makes sense
Maybe in a different language it would return something like null but really if you want a default value from ⊃ it's not very hard prepending it
 
For lists default ⊣´ list also works (fold with initial value).
 
yeah, either way it's straightforward
 
8:39 PM
Also, Learning APL on HN and the first comment is positive for a change. Really positive!
 
yeah, just replying to that just now!
or at least, I will if I can find that aaron hsu talk about teaching kids APL
 
I didn't know about that one.
 
would be cool to do something now, 8 years later I'd think things would be different, although my school is still using VB material from 20 years ago so maybe not
 
Only problem with it is that kids'll get disappointed when they have to learn more conventional languages later :P
 
yeah, that's what 'leephillips' said
 
8:51 PM
> APL was the first language I learned
Can't tell if they were lucky or unlucky :P
 
I like the framing. "Oh you can't teach people APL once they've used Python. It just destroys the way you think". "Problem with teaching APL early is it's just better than anything else so it's hard to learn other languages".
Second language is the hardest (in perceived effort) for most people I think.
 
@Marshall Second paradigm, not necessarily language, if you learn python and then learn ruby it'll be pretty trivial
 
^
 
But yeah I think until you've really covered a few different paradigms and languages within them you'll be heavily influenced by your first language
 
I think APL will get you comfortable with functional languages but still teach you a bit about those with mutability and stuff
And no one can prepare for the craziness that is OOP anyway :P
 
8:54 PM
I quite like this blog post madhadron.com/posts/seven_languages.html
@user in some ways yeah but APL like languages are basically a category of their own imo
 
@rak1507 Interesting idea
@rak1507 True
Someone needs to turn this into an actual experiment: Teach one group of students APL, another Python, another Haskell, etc., and then teach them other languages, and see which ones grasp them easiest
 
Yeah, would be interesting
 
@rak1507 Huh, the author suggests learning J instead of Dyalog APL as an APL
I guess because Dyalog's proprietary?
 
probably who knows
 
It probably matters a lot how you teach it. You might explain booleans in APL by saying that the numbers 0 and 1 are false and true or that they just represent them. And you might teach Haskell with the boolean type or maybe you will introduce "Boolean blindness" and say plain booleans are bad. Some teachers explain things by telling how other languages are wrong and it makes the barriers a lot higher when not only are things different but they also go directly against what you learned.
 
9:11 PM
@Marshall Was J the first language you learned?
And yeah the teacher quality probably makes a huge difference. There are people in my class who don't understand programming to be anything more than memorising syntax from a reference book and copy pasting it when relevant
 
Yeah, teachers themselves always matter too
It's always sad when a teacher turns a fun class into something painful where you just come in, memorize stuff, take tests, and go home
 
@rak1507 Yes, unless you count programming calculators in TI basic. Worst thing I learned was probably this weird superstition that strings are an abstraction but numbers tell you the real story (like 3 :0 for a function. Huh?).
 
Wait, what does that mean? (3:0 and numbers telling you the real story, I mean)
 
But I learned OOP in J!
 
@Marshall How did you find transitioning to other non-J languages?
 
9:15 PM
@rak1507 Pretty unpleasant. Tried Python and really didn't like it, even though now I think it's fairly good. Similar with Java in college, although of course I'm not going to start enjoying Java any time soon.
 
Does anyone? :P (enjoy Java, i mean)
 
dzaima does!
 
@Marshall Interesting, obviously a sample size of 1 isn't particularly good but that's roughly in line with what I'd expect
I guess sample size of 2 if you count that hackernews commenter
 
@Marshall Oh right, dzaima/APL's in Java
@Marshall Are languages like Kotlin, Scala, Rust less unpleasant? (if you've tried them)
 
@user Well it doesn't make any sense anyway. But things like foreigns in J are all identified with numbers from some combination of not wanting to pollute a namespace and implementation laziness. Types are identified with numbers not names and so on. It's not better for identification, it's just leaking implementation details.
 
9:19 PM
Oh, that's odd
 
And it matters for speed because J syntax is so crazy you can't tokenize ahead of time.
 
@user and like everything else I write (that doesn't explicitly need performance) is in Java. I don't necessarily like Java, but, along with IntelliJ IDEA, it's the best development experience I've found. (of course, I do want to make my own low-level-ish language at some point, but it turns out that's not simple, for whatever reason)
 
@user Tried out Scala shortly after learning Java (I probably new Haskell at that point?). I think the data types are a mess, or at least were at the time, and problems from Java that shouldn't happen in a functional language are all over the place. Maybe worse than Java, which is at least coherent, to be honest.
 
Huh, I found it a lot better than Java (though I do admit it's a lot less regular)
 
I tried writing a BQN VM in Rust that would be reasonably fast and basically found out that Rust isn't a good fit for it.
No experience with Kotlin.
 
9:23 PM
Kotlin's like Scala lite
Lot more like Java than Scala, and less of the functional stuff
 
I'd rather call Kotlin like Java but with random changes to syntax
 
The random changes to syntax seem to be inspired by Scala, although idk where exactly Scala got that syntax from
 
I think Go and Zig are the statically-typed imperative languages I actually like, although I haven't done much with either. For functional Haskell is okay and Idris seems like an improvement.
 
Idris looks like an amazing language (never tried it) but doesn't seem ready for production :/
 
Idris2 is a big step forward. I think it's probably all right for small codebases but large ones would be too much compiling.
 
9:30 PM
I really want a practical language with proofs. Scala's implicits deliver one half of that, and Kotlin's contracts another, but they're not enough
@Marshall Yeah, I found it interesting how Chez Scheme was faster than C
 
9:56 PM
Wow. 3rd on HN.
Screenshotting this for posterity
 
yeah!
 
You were 2nd for a while. Congrats!
 
@Marshall Thanks for your kind words in the comments.
 
Oh also your post there says "thoughht"...
 
*fixed, thanks
 
10:02 PM
@xpqz Just the truth of course. I haven't read much but what I did see was great. Will probably be looking through for ideas on how to present BQN.
 

« first day (1654 days earlier)      last day (984 days later) »