« first day (1779 days earlier)      last day (865 days later) » 
00:00 - 19:0019:00 - 23:00

12:01 AM
CMC: interpret NLRNIS (It's possible to interpret but hard to make program)
 
12:39 AM
@FawnLocke 'tis live! "X, Y: any array type" shouldn't say "any" as that isn't true. No need for | in headings; font size difference is plenty. @ isn't actually "Replace". "At" is a better name (and official) but you could call it "Amend" if you want, and the dyadic form could be "Amend with" or more precisely "Amends". You may also want to put "Dyalog"/"Dyalog APL" in the <h1> so people don't think it applies to other APLs. Finally, don't forget a <title>.
 
Appreciate all the feedback, will make the changes shortly.
Was curious if en.wikipedia.org/wiki/Menger_sponge has been implemented in APL?
 
Dunno, but should be trivial. Have you seen the 2D expression on APLcart?
 
Don't think so
 
Oo, interesting
 
12:43 AM
Sorry, I meant 1D.
afaict, just doing ∘.∨⍨ on the result of that gives the 2D set.
 
Awesome.
 
Somehow, I'm failing to see how to go from that/those to 3D.
 
1:05 AM
@FawnLocke So… what are you putting in that bottom right corner?
 
←⋄→⍝
¯⍬⎕⍞
⍺ ⍺⍺ ⍵ ⍵⍵
∇ ∇∇ # ##

As well as the dfns/trains syntax and maybe a few system names
There's a handful of things omitted, including the tradfn control flow, but I think that's okay.
 
If you're not trying to cover tradfns (fair) then you can omit
Oh, how about bracket indexing? It is a "function".
 
If there's space I'll cover it, it's definitely important syntax to know
 
There are also multiple types of assignments, which are really nifty.
 
Also, is even used in tradfns? I know Dyalog is against breaking changes but → seems like valuable glyph space
 
1:14 AM
It is equivalent to :GoTo (when given an argument) and :Return (without argument), but I barely ever see :GoTo – everyone uses (though they really shouldn't use any gotos at all!)
 
Ah, okay.
Has APL decided on a logo yet? I think I'll use the one you showed me last time for the site's logo
 
Not yet; slow process. Hopefully beginning of next year. All candidates must be in by year-end. However, if that page is Dyalog-specific, wouldn't it make more sense to use the Dyalog cube or a Dyalog D?
 
Maybe, but I really like the new logos :)
 
All of them?
 
Most of them
 
1:19 AM
You could easily use up a whole row of 4 just for assignments:
n←A
n f←A
(n m)←A
(f n)←A
and even
n←f
n←o
Oh, and there's of course n[…]←A
 
Those will probably be covered in ←'s docs (I'll check).
 
And combinations of the above, e.g. (f n)[…]f←A
I count 7 pages.
help.dyalog.com/latest/#Language/Primitive Functions/
Assignment Selective
Assignment Indexed
Assignment
Distributed Assignment
Assignment Selective Modified
Assignment Indexed Modified
Assignment Modified
.htm
 
I can't stop looking at the Dyadic operators section - it's awfully pretty. Your organisation of the symbols was great :).
 
Too bad I hope to mess it up soon with f⍥A and f⍢g and f⍫g
 
Heh, we'll see :).
 
1:24 AM
And I really would like f⍛g too.
I guess you'll just add another row then…
 
@Adám Me too!
What do you think about monadic = being identity matrix?
 
Well, you have exactly 4 empty slots for dyadic operators. I guess that settles it.
@FawnLocke That's interesting.
 
I think it might be a good addition. monadic = as classify makes the most sense but classify is already quite short to write.
 
By that, you mean {1=≢⍤∪¨⍳⍴⍵}?
 
Yes
 
1:31 AM
That's not very hard to write either, fairly rarely needed, in my experience, and usually only needed for matrices, where ⊃∘.=⍥⍳/ does the trick. And then, by far most cases have a square matrix, so ∘.=⍨⍳≢ does it.
@FawnLocke Classify is short, but hard to make efficient. That calls for a primitive.
 
That's true
 
However, I'd really want a that can take the or alternatively ⊂⍤⊢⌸ that can take the .
We have plenty of slots for monadic functions, though, and no slots for dyadic ones at all.
 
@Adám Can you golf my answers written in APL? (I'm finding a challenge without answers written in APL)
 
Indeed, I can't think of many dyadic functions I'd want to add anyway. Also, when I was a beginner (well, less of a beginner) I thought of most problems through the lens of identity matrices - so I guess I'm biased towards them being useful
 
@Fmbalbuena Maybe.
@FawnLocke Be proud of that. Iverson was very much into matrices.
 
1:38 AM
:)
Like Paul said earlier,

∧ and ∨ for sort ascending/descending
⊥ and ⊤ for conversion from/to binary
> and < for increment/decrement

Are no brainers, maybe there's better uses of > and <. I'm surprised they haven't been added
 
I'd very much want (or some other symbol for Select/Permute). Less urgent, would be and to construct complex numbers from cartesian and polar parts resp.
 
Permute, like cmat?
Select would totally be nice :)
 
No, takes a permutation vector as left argument and permutes the major cells of the right argument.
 
Ah, I see. Interesting
 
But hey, cmat would be a nice monadic meaning.
 
1:44 AM
cmat is very useful but often used as a cop-out for efficient/smart algos, maybe dangerous to add as a primitive
 
Actually, would it not make more sense to be pmat?
 
If one would ever consider adding cmat/pmat as a primitive, it would best be a single ambivalent primitive
 
Yeah, of course. Matches !
maybe?
 
Permute would definitely be useful
 
NARS2000 uses as a heavily overloaded operator for counting and generating all kinds of combinatorics.
As if 's left argument wasn't enough, uses 4 (!) such numbers.
 
1:51 AM
Is NARS2000 still maintained?
 
For sure.
 
Oh lol, that must be much better as user library
 
Whenever I hear NARS2000, APL2, APLX etc, I always think of something ancient and lost :)
I think I have APL2 installed, actually
 
I have too. APL2 isn't dead. It was just taken over by a different company.
Only APLX is truly retired.
APL+ is also alive.
Oh, I'd really like too. Iverson had planned it, but the implementers ran out of space.
 
I'll look into NARS2000, I like learning about other APLs
There's SharpAPL too and MicroAPL.... completely forgot about those
 
1:54 AM
@Adám
0
A: Test if two numbers are equal

FmbalbuenaAPL (Dyalog Classic), 5 bytes ⎕←⍞≡⍞ Try it online! My first APL answer!

^ My first answer
is there a way to golf this?
 
It'd be nice to be able to get primes, but it isn't really very commonly needed. Would be nice as an Easter egg in the form of ×/⍣¯1
2
A: Test if two numbers are equal

sporklponyJelly, 1 byte = Try it online! Explanation: = Takes two arguments and returns a 1 if they are equal, and a 0 if they are not. Implicit print.

Works in APL and J too. — Adám Jan 9 '18 at 14:19
 
@Fmbalbuena Notice that the word "APL" is a TIO link.
 
i don't understand
 
Yeah, primes are better left to a library. Is there a maths library outside of dfns? It'd be nice to port some of the stuff from Julia/Mathematica
 
1:58 AM
@FawnLocke Dfns is not a maths library. Yes, there's github.com/Dyalog/math
 
Yeah, but dfns does contain factors and such.
 
But it is just LA stuff.
 
I see
 
@FawnLocke Oh yes, and even the giant pco.
 
0
A: Test if two numbers are equal

FmbalbuenaAPL (Dyalog Classic), 5 3 bytes f←= Try it online! My first APL answer!

 
1:59 AM
@Fmbalbuena = is a function which takes two arguments and compares them.
You can give it a name with f←= and then use it as 3 f 5
@Fmbalbuena It isn't 3 bytes; it is only 1. CGCC consensus is that answering with an anonymous function is fine.
 
0
A: Test if two numbers are equal

FmbalbuenaAPL (Dyalog Classic), 5 1 bytes = Try it online! My first APL answer!

 
@Fmbalbuena OK OK, but now it is hardly "your" answer, as it is identical the answer I pointed you at.
Also, please stop using Classic.
 
@Adám why not Classic?
 
Oh, I didn't realise AOC problems were on CGCC. I had a nice solution to day 3
 
Also consider using APLgolf instead of TIO
 
2:04 AM
1. Because it echoes to stderr.
2. Because sooner or later, you'll want to use a glyph it doesn't have.
3. Because it can't handle Unicode text.
 
TIO is 17.1 or something but you can use latest version on APLgolf, and you don't need strange header/footer thing to submit anonymous functions
 
I should learn how to use it.
> you can use latest version on APLgolf
More true than you might think.
APLgolf accesses 18.2.
 
Ah I didn't realize TryAPL was on 18.2
 
The default setup is a dfn or tacit with the function name being f, so you can write just the anonymous function and write some test cases at the bottom assuming f is defined, like in the link above which tests f←=
 
Darn, I won't be finding any easter eggs :)
 
2:11 AM
TryAPL does kind of have Easter eggs, if by that you mean undocumented features.
 
It is open source, so you can see my latest changes. Nothing very interesting. We've just been battling with stability issues, and I added some unofficial user commands to report stuff.
 
Coolio
 
Maybe the only mildly interesting thing is to see how much traffic it gets.
─── 2021-12-09T02:14:11Z ───
 Up               2h37m
 Data             4,136kb
 CPU              2m55s
 &                4
 Reqs             847
 
I use tryapl a lot :)
 
2:15 AM
So just over 5 requests per minute.
 
4 threads?
 
The reason I'm up late tonight is that I worked until midnight trying to fix an issue. I think I finally got it.
 
Woohoo!
 
Yes, 4 threads, and that number was previously increasing over time, with more and more threads hammering CPU and filling memory, eventually causing a crash because there was no more memory even for the error handling (or even the fallback extreme emergency measures) to do their thing.
@FawnLocke Were you asking what they were?
 
Nothing that specific :). I should probably stop putting off sleep, unlike you I lack a reason haha. Thanks for your help today
Or, assistance, even.
 
2:20 AM
1. The main thread which isn't doing anything unless I RIDE into it and execute stuff
2. The server.
3. The monitor that kills requests running for more than 10 secs
4. The request thread producing that report.
@FawnLocke Yeah, me too. But thank you for doing this!
 
 
3 hours later…
5:11 AM
monadic , on tryapl.org in the language bar is called enlist. Shouldn't it be ravel?
 
 
3 hours later…
7:47 AM
@FawnLocke Good catch.
 
8:39 AM
Is there a way to set the padding element for stencil?
 
No, but the operand gets the info about how much padding was added and where, so you can do it there.
 
Ah yes, that rings a bell
 
⎕←{n←⍵ ⋄ (⍺[1]↑n)←'x' ⋄ (⍺[2]↑⍉n)←'x' ⋄ ⊂n}⌺3 3⊢3 3⍴⍳9
 
@Adám
┌─────┬─────┬─────┐
│x x x│x x x│x x x│
│x 1 2│1 2 3│2 3 x│
│x 4 5│4 5 6│5 6 x│
├─────┼─────┼─────┤
│x 1 2│1 2 3│2 3 x│
│x 4 5│4 5 6│5 6 x│
│x 7 8│7 8 9│8 9 x│
├─────┼─────┼─────┤
│x 4 5│4 5 6│5 6 x│
│x 7 8│7 8 9│8 9 x│
│x x x│x x x│x x x│
└─────┴─────┴─────┘
 
8:44 AM
That's an excellent book, I hear. Maybe you should read it?
 
Maybe I should remember what I wrote?
 
Btw, why no favicon? Should totally be or or some ambiguous average between them.
 
Yeah. I'll see what I can do.
 
9:16 AM
hey all, I'm back with more questions in my quest for knowledge!
 
Go for it!
 
So I have this bit of APL code: `{⍵, +/¯2↑⍵}0 1`, which I can tacitly rewrite to `(⊢,(+/¯2↑⊢))0 1`. They both produce the correct result of `0 1 1`

However, if I try to do the same in J: `{{ y, +/ _2{.y }} 0 1` --> `([,(+/_2{.[)) 0 1` I get completely different results between the two versions.
What am I doing wrong/misunderstanding here?
I guess the chat doesn't support code in ``, ah well
 
@ElectricCoffee It does, but only if your message doesn't have line breaks. Multiple consecutive messages will be merged, so…
@ElectricCoffee 2-trains mean something entirely different in J.
Try inserting [: to the left of +/ giving ([,([:+/_2{.[)) 0 1
Alternatively you can use 1#. instead of +/
Otoh, due to that meaning of 2-trains, you can omit your lefmost [ (which btw should have been ] for equivalence with )
So, in total, you should be able to use (,1#._2{.]) 0 1
 
what does n#. do?
 
Evaluates as digits in base n
You can also use the 1#. trick in APL to avoid parentheses. It is spelled 1⊥ giving you (⊢,1⊥¯2↑⊢)0 1 and if you move ¯2 out, you have ¯2(⊢,1⊥↑)0 1
 
9:28 AM
I don't understand what the utility of evaluating in base 1 would be in this case
 
Evaluating in base 1 is the same as summation, if you think about it.
However, because base-evaluation is a dyadic function, it fits nicely into trains.
 
I think I remember you mentioning that in that on the podcast
it still blows my mind a bit
 
(3,1,4,1,5)₁ ≡ 3×1⁴+1×1³+4×1²+1×1¹+5×1⁰ ≡ 3×1+1×1+4×1+1×1+5×1 ≡ 3+1+4+1+5
 
right, that makes sense
I'm always so used to thinking about bases as being limited to the glyphs that exist within them
so "3" in base 1 wouldn't be allowable, hence why a base 1 decoding of 3 wouldn't make sense
but thinking of it purely in terms of n^m where n is the base, it all makes perfect sense
 
Right, but it really isn't so. Think about a movie lasting 95 minutes, not (1,35)₆₀ minutes.
 
9:34 AM
how exactly do 2-trains differ between apl and j?
just so I can internalise it better
 
Some train and bus timetables will even list times like 24:15 for times immediately after midnight that conceptually belong to the day before. That's (0,24,15)₍₋,₂₄,₆₀₎
@ElectricCoffee imo they are a bit crazy (as you may have heard on the podcast). Monadic (f g)Y is Y f g Y and dyadic X(f g)Y is X f g Y
 
yeah, I've seen that before
Sometimes I've seen hours listed as 00-24 rather than 00-23:59
@Adám which is that?
j or apl?
 
That's J.
APL you already know, as evidenced by your usage! (f g)Y is f g Y and X(f g)Y is f X g Y.
 
so g has to be dyadic in the monadic case?
 
No, in J 2-trains, g is always monadic, even if the train is used dyadically.
 
9:39 AM
oh I misread Y f g Y as something completely different
 
That's the crazy bit (I hope to cover in a future episode), that the leftmost end of the train entirely dictates the meaning of the rightmost end.
 
but Y f g Y uses both f and g dyadically, no? Y appears on both sides
or at least f dyadically and g monadically
 
Right, f dyadically and g monadically.
I meant those explanations as normal explicit expressions.
 
so (++/) 1 2 3 4 is the same as 1 2 3 4 + 10?
 
Yes.
 
9:41 AM
wilds
wild*
 
@ElectricCoffee You can edit messages for 2 mins: Up-arrow
 
But you agree that this is crazy, right?
 
a bit yeah
 
So in J, the train (p q r s t u v) the v is monadic or dyadic depending on how the train is used, but in (q r s t u v) the v is always monadic, even if the train is used dyadically!
 
9:43 AM
I just remember reading somewhere, I forget if it were APL docs or J docs, that a 2 train was the same as a 3 train with the left verb removed
must be J given the evidence that (f g) is the same as (] f g)
 
Only in the monadic form!
 
You can describe APL's behaviour like that, though. Because the left side is missing, the "middle" one has to be applied monadically.
 
so I guess it would be ([ f g)
 
@xpqz advent of code? :)
 
9:45 AM
@ElectricCoffee Nope, as that would apply g dyadically in the dyadic case.
 
dangit
 
@rak1507 yea
 
@ElectricCoffee I know. Crazy.
 
Tying myself in knots on p2
 
I used shifts←{(⍺,2⊣/⍵)(2⊢/⍵,⍺)(2⊢⌿⍵⍪⍺)(⍺⍪2⊣⌿⍵)}
more convenient than stencil...
 
9:45 AM
anyway gotta go, best not chat while at work (oops)
 
I'm reasonably pleased with my part 2 for today but I'm sure there's something better
 
If the J behaviour is really what you want, it is easy to achieve in APL: A monadic J 2-train is f∘g⍨ and a dyadic one is f∘g
I like how the has to be explicit as that is exactly what is happening.
A universal equivalent of J 2 trains is f∘g⍨⍨
Hm, should I add f∘g⍨⍨ to APLcart as "J hook"?
 
@Adám I mean, you could but why would anyone ever use that..
 
I wonder if any Jer has ever written an even-numbered train longer than 2 that they intended to be used ambivalently.
Oh, wait, I have an idea where it could be useful. Nope.
 
 
2 hours later…
11:55 AM
@rak1507 don't want to peek at your solution, but is there a smarter way than some shoddy floodfill? I hacked out a floodfil in python to claim the star, but that will be fugly in apl... I guess could do graph connected components
 
@xpqz I did a floodfill type thing too
not sure how shoddy it is :P
 
@xpqz Flood fill is easy with . I've seen it in some code golf posts.
3
A: Friar simulator

H.PWizDyalog APL, 30 29 28 27 26 bytes (SBCS) +/∘,{12 2⍷×∘⌽⍨⊢/4 2⍴⍵}⌺3 3 Try it online!

 
⌺ seemed a bit annoying here so I did it 'manually'
 
2
A: Is my prison secure?

ngnAPL (Dyalog Classic), 40 bytes {⊃2≠(××{1⊃⌈/⍵,⍉⍵}⌺3 3)⍣≡(⌽1,⍉)⍣4⊢'# '⍳⍵} Try it online! '# '⍳⍵ encode '#', ' ', 'P' as 0 1 2 (⌽1,⍉)⍣4 surround with 1s (××{1⊃⌈/⍵,⍉⍵}⌺3 3)⍣≡ max-of-neighbours flood fill of non-zero cells ⊃2≠ do we not have a 2 at the top left?

 
@Adám +/∘, can be ≢∘⍸ for -1 right
(unless there are decimals)
 
12:05 PM
So I got to a point where I have a binary matrix with 'flooded' regions (the 1s). Now I need to partition all connected regions. That's where I got stuck.
 
@xpqz hmm, do you want a little spoiler?
 
@rak1507 Yeah.
 
Sure
 
try flooding each region with a different number
 
oh ffs
 
 
1 hour later…
1:26 PM
@rak1507 so got to this: gist.github.com/xpqz/d7ffa9c4aa90a299368ffb2800f1762d -- it works on the test data, but slightly off on the real set, for some reason I can't fathom.
 
1:50 PM
flood←(××{1⊃⌈/⍵,⍉⍵}⌺3 3)⍣≡basinslooks like you might be filling diagonals too?
 
o yeah
 
 
2 hours later…
3:23 PM
is there a way to quit debugging if deeply recusively nested? clicking the X only drops that frame I think
(RIDE)
 
@xpqz )reset or )sic (they are synonyms)
This works with all platforms and interfaces – RIDE is dumb: the interpreter handles stacks and closing trace windows.
 
Sweet. That's useful to know.
 
@xpqz What did you APLcart for?
 
@Adám "quit debugger"
 
OK will add.
 
3:28 PM
I see your suggestions comes up on just "debugger", but I wouldn't have made the connection that this was what was needed from "Reset state indicator and empty event queue/clear top n suspensions" I think.
 
Aha, I'll see if I can expand the description as well.
 
I think "/terminate debugging session" would have helped me there.
 
> Reset state indicator, empty event queue/clear top n suspensions, and close corresponding trace windows
@xpqz How is ^?
 
Sounds good.
 
How does one indicate that )sic is actually spelled like that? )sic (sic)?
 
4:25 PM
s-i-c?
 
State Indicator Clear.
 
@Adám - Isn't square brackets the norm for that? i.e., )sic [sic]
 
Yeah, I think you're right. Not an actual problem. I just thought it was amusing..
 
i.imgur.com/IHE0lVn.png Thoughts? Anything to add, style improvements, different glyph names? (I'm sure Quad is wrong)
 
is spelled wrong.
 
4:30 PM
Thanks
 
Yeah, Quad and Quote Quad are glyph names. It should be functionality. is evaluated input/stdout and is text input/stderr.
 
Gotcha
 
J calls (i.e. colours) the trains conjunctions, i.e. dyadic operators.
That's an interesting view. It is then talking about the functionality of the syntax.
I'd argue that the trains as wholes are functions.
 
Yeah, I think that makes more sense
 
{…} isn't "direction functions".
 
4:34 PM
What's the correct name? I took that from wikipedia
 
You could say "dfn/dop" and call it syntax or you could have {…} dfn, {⍺⍺} monadic dop, ⍵⍵ dyadic dop.
I'd say split the braces into three, and add one more train: (A g h) fork.
 
I was thinking that, thanks for the feedback
 
Gives you a nice 2-row 3-column table
And then colour {…} and the trains as functions, and the operators in their respective colours.
 
Yep, will do!
 
If you follow NuVoc, ¯⍬⍺⍵⎕⍞ should be noun-pink.
Assign should be copula-grey.
⍺⍺ and ⍵⍵ are problematic, as they can be either nouns or verbs. NuVoc splits those cases.
Oh # and ## are nouns too.
 
4:39 PM
Good point
 
should be verb-purple, but ∇∇ is again problematic as it can be monadic or dyadic. J doesn't seem to have self-reference for adverbs/conjunctions.
Actually, can have any name class.
 
4:53 PM
i.imgur.com/DGaVBZU.png Starting to get quite an assortment of colours.... Should I split ⍺⍺, ⍵⍵, ∇∇ into their respective cases. No clue what to do with ⍺. Either gradient, splitting or an ambiguous colour
 
If you go with gradients, I'd make them vary horizontally rather than vertically.
Hm, but that makes ⍺⍺ look like two separate things.
 
Yeah, tough.
 
Diagonal?
Or maybe just make them grey like
 
I think going grey is probably the best idea.
 
Technically, can be a function or an operator too!
 
4:56 PM
How fun :)
 
Yeah, maybe make ⍺⍺ ⍵⍵ and ∇∇ grey? Don't forget that # and ## need to be pink.
 
Yep, comment should probably be gray too
 
Indeed. That's what it is in NuVoc.
Would it be an idea to swap and ⍵⍵ with and ∇∇?
 
Yeah, that's better.
 
Actually, I might want to move even more things around. Can I have a pic with final colours?
 
5:01 PM
Sure, one moment
i.imgur.com/ZOdxCGC.png The contrast between ∇ and ∇∇ isn't great.
(I actually darkened the gray so you could see the difference, in the NuVoc it's a shade lighter)
 
@FawnLocke Can you try:
 ←  ⍝  →  ⋄
 ⎕  ⍞  ¯  ⍬
 ⍺  ⍵  ∇  #
⍺⍺ ⍵⍵ ∇∇ ##
 
Sure thing.
 
Doesn't that look a bit less messy?
 
I'm comfortable with this. Looks good
Indeed :)
 
A bit interesting to have when you're only covering dfns. Nobody ever uses it.
 
5:11 PM
I only included it for symmetry tbh
 
But technically, it is valid. It is "Abort", though; it doesn't take an argument line number.
@FawnLocke is always a noun… pink?
 
Would putting a button in RIDE for )sic be a good idea?
 
Even the IDE doesn't have that.
 
Oh? Why does ⍺ differ from ⍵
 
@Adám My question stands :)
 
5:14 PM
@xpqz However, the IDE has a menu item for )sic. Log an issue!
@FawnLocke Because you can assign to and that will have effect if the function was called monadically. You can never assign to the other special names.
 
Ah, I see. Missed that
 
⋄ f←{⍺←10 ⋄ ⍺+⍵} ⋄ f 2 ⋄ 3 f 2
 
@Adám
12
5
 
Looks quite nice :). I'll add the dfn and train syntax now. Populating links is gonna be fun!
 
@FawnLocke Swap /⍵⍵ and /∇∇?
 
5:16 PM
Yep, good shout
 
@FawnLocke You need two rows for those, but you only have one. Suggeestion: remove "Monadic" and "Dyadic Operator" and the monadic legend, then move the dyadic legend up to the new "Operators" heading.
 
On it :)
 
This will also allow you to change ∘.f into ∘.g if you want. (Dyalog docs do that.)
 
I intended to do that and forgot about it
 
I'd remove "Special". It's syntax. Period.
Then put dfn mdop dop syntax just below ⍺⍺ ∇∇ ⍵⍵ and the three trains just below those.
 
5:23 PM
Yep, aligned the tables too.
 
Do you want to fit : and :: in there too?
@FawnLocke related.
 
There's a space column and it's related to functions, so sure
 
Zilde is the glyph name. Should be "Empty vector" or "Empty numeric vector"
 
i.imgur.com/FcNpsO8.png Gonna make some adjustments and re-add the colorcode
Oh, guards too!
1 2
 
5:43 PM
Hard choice.
One min. I might have a solution.
 
I have a few ideas
 
Meanwhile, the {⍺⍺} and {⍵⍵} are swapped (but not their names.
 
Ah, yep
 
And the colours of them are wrong too.
 
Ah...right.
 
5:49 PM
Wait, no, only one of them is wrong, the other needs to be blue, and the trains and dfn need to be purple.
Yeah.
Monadic and dyadic ops should swap.
 
What does Dyalog call nouns?
 
Variables or arrays or constants.
 
Are names nouns?
 
No.
 
Gotcha
 
5:58 PM
Sorry for the bad colours, but I think this isn't too horrible.
 
Wonderful. I'll be back later with a hopefully finished (for now) product. Thanks for the help
 
Can't wait!
 
6:35 PM
Updated! (Told you I was leaning on F5.)
@FawnLocke is still labelled "Branch" even though it is exclusively "Abort" in dfns.
 
:) Just adding the links now. And good catch
 
QQ: how do you clear the editor window in RIDE? (Not the session, that's )CLEAR, but the editor window?)
 
You can't.
I've requested it in the past.
 
You can probably delete the history in the interpreter's folder - or something similar. Not 100% sure though
 
Just close RIDE, delete the log file, then restart.
 
6:38 PM
I see. ⎕OFF it is. :)
 
I think the file is ~/.dyalog/session_log_180U64.dlf
If you set LOG_FILE_INUSE=0 you should get a new log every time.
 
I still haven't install dyalog properly, just running it from docker. (Btw, that was an amazing experience, just docker run ... and you have a working thing in your browser.) So, I just restart the container once in a while. :)
 
Would it be nice if you could just do ⎕SE.Log⍴⍨←0?
 
A more philosophical musing... I don't know how to think well about more traditional programming in APL. Today's AoC part 2 was a doozy for me.
Eventually I got it work, and it's not even that bad: gist.github.com/klao/b37b9a8f28c8235972ce94e8d6cc9f0e
 
Nice uses of ⎕CSV
 
6:46 PM
But I feel like APL was way more in my way…
 
Whoa, ∘.(+.×)
 
I hadn't thought of that
 
Oh, yeah, that was a nice idea yesterday. I'm proud of that
Still basically just the same @rak1507 's, just way more verbose. But I came up with it on my own.
 
@klao nice
 
I'll try to clean up today's solution and understand y'all's code for today. But for me it would have been much easier to write it in a traditional programming language. The quick iteration, immediate feedback, composability etc. is very nice in APL. But trying to fit my ideas to the APL mold is very challenging
 
6:53 PM
@klao sounds like you need to apply the APL mold to your ideas ;)
 
But, I guess that just comes with practice
@rak1507 You might be right :)
 
Your neurons will grow multi-dimensional connections over time.
 
I did really enjoy it in the previous days, but it was more straightforward
 
@klao I found this one much easier than yesterday's
 
@rak1507 That's encouraging!
 
6:55 PM
(although yesterdays was 'easy' because you could bruteforce)
@klao I guess I've seen similar flood-fill-y things before so kinda had an idea of how to approach it
 
Cool, I'll look at your code later for inspiration!
Interesting, I had your shifts in my code for some time, but then replaced it with stencil
 
stencil seemed annoying with the fill elements + not including diagonals
 
00:00 - 19:0019:00 - 23:00

« first day (1779 days earlier)      last day (865 days later) »