« first day (1432 days earlier)      last day (72 days later) » 
00:00 - 13:0013:00 - 00:00

12:01 AM
 
yup, if it doesn't work, just add more parens
 
@Adám (but also the no implicit each)
 
@dzaima Wait, really? Can you show that?
 
seems so. ¯\_(ツ)_/¯
@Adám this?
seems the implicit each is added based on the existence of some actual array modifying function, rather than the type of assignment
 
@dzaima But can you stop the ¨ in the first case?
 
12:04 AM
@Adám no, i'm just commenting on it not being there in the second
@dzaima oh, that can be seen more clearly
 
@dzaima Not sure what you're showing there.
 
@Adám that there's no implicit each there (otherwise it'd be (9 9)(3 4))
@dzaima so that's incorrect. implicit each is based on whether the result array had any element modification
 
12:21 AM
Will dyalog ever get dzaima/APL's ⍬2⍴something? It's so convenient
 
@rak1507 I've initiated a formal internal proposal, but I've not managed to convince enough colleagues about it yet.
 
What's not to like?! It would make grouping things far easier
 
My proposal is slightly more versatile, though: ¯1 to stop short if missing elements, ¯2 to require an exact match, and ¯3 to recycle.
 
Interesting
 
@rak1507 Nic wrote: "I don't block this proposal, but I don't support it either. To me it's just a convenient hack. We'd rather have a global discussion about how to "fill" arrays, and try to come up with a unified approach to all cases (⎕MAP, , , , etc.)"
For context, I was pointing out that ⎕MAP has ¯1 with this meaning already, but no ¯2 or ¯3, which I was then proposing to add.
 
12:27 AM
I see where he's coming from but I'd be scared that saying 'we're not doing this until we do lots of other stuff too' results in nothing getting done for ages
 
@rak1507 You're correct. John Scholes himself stated so.
"Dyadic" was the former name of Dyalog Ltd.
 
I've seen that before (the company name, not the 4 step thing)
It seems right, I've done that before, I was doing something in haskell for example and I thought 'hmm I'm basically composing a bunch of things' and got lost trying to work out how monoids work rather than just doing the task at hand
 
I have a quite large number of "minor"/"medium" feature suggestions in the works, but a lot of them have already been blocked. My first one was extending :Repeat to allow :Repeat N but that was blocked for "lack of usefulness; insufficient justification for doing it."
My second launched suggestion just got approved, though. So hooray, I guess. But it is very minor and technical.
 
:Repeat N seems useful to me, that's basically what I was doing in this task earlier
 
Apparently, people think :For dummy :In ⍳N is fine, even though it uses a dummy variable and allocates ⍳N for no reason.
 
12:36 AM
I guess there are more pressing issues to deal with
 
That's very true. What are we even thinking considering language enhancements while core components of the system have serious issues‽
 
Both would be ideal but unfortunately time appears to be finite :(
 
@Adám recycle still seems like just an awful option to have (and i wouldn't be surprised it's a reason some don't like the proposal)
 
Maybe. Fill is probably more useful.
 
https://dzaima.github.io/paste#0lZTNasJAEMfvPsXeEtFiEqRgRWjpx0uIlJhuqWCT@EER1B5aEBO60iKFHlvtQYo3K@25jzJP0tlN/EhNol0IyS7zy3/mP5MQwteFJdt167JSpdKFJSWJdHZ6ckxUReGXokgJHqT6odB7bJPYtRbOl13VzQaxSQ1JiUgyOK/g9sAdJYHNYzABABv8TPBxZyHODJ6PgM083XikblnXAmEzE29aCpzRJvcHMq6sBjUFNd3JAQNjFWCfwCYa3swYKLvcnnOjTdpqciH3XmR665XY//BS2ISEWpFTeWREdAl5NVJlVU8a4zgYklQucOTn8MLfC72h2HaBjdtoBzhvi/00xAQZmAP9Ce@9eiiDe@dV5SWQxGMjrEdUdKg3lNHzJ97cZAadBPauLogo42mr0mxsNT8hpnzpSrOu39B6g0YNuh@urplqWN7gsTk8fBlbFVZVhX9JC4Wg70QpaJ1Uhi6FRHUH2Gdg3zyDBMnmcjmiakGsklqFoIvoQ8UbKTzTOjSguL/CusGvMyxBTSFBq4vI5LGyUio4dBEG7Pb/6P7nZ6Oj8LKBbGzjh
I doubt I'm gonna be able to speed it up by ~8 times which is what would be required for it to be a valid submission... oh well looks like c++ wins this one!
 
12:47 AM
@rak1507 Do you know about ]profile?
 
@Adám and ⎕MAP cannot be unified. has different enough needs for there to not be any connection (and any would probably be confusing at best). Extending to allow a stop-short ¯1 and then adding an erroring ¯2 as a better version seems reasonable. (and, if need be, this can be extended later on)
 
@Adám yes
It seems more complicated than dfns.profile so I thought that'd be fine
 
@rak1507 Oh, is that what that is. OK.
@dzaima Well, J has the anomalous "fit" operator… Maybe I should limit my proposal to just ¯1 (from ⎕MAP) and ¯2 as the safe option.
Either way, it is definitely something I'd use a lot.
Another nice extension would be to allow a nested left argument to to partition along multiple dimensions.
It is currently quite awkward.
 
@Adám j's fit doesn't really allow for both ¯1 2⍴ and 2 ¯1⍴ without going insane though, right?
 
@dzaima I don't think it applies to reshape unless the right argument is empty.
 
12:55 AM
@Adám i more meant in general - an operator for this is just stupid
so to implement guess-reshaping, i see only 2 options - completely new builtin, or a special item in the left arg.
 
@Adám It does.
@dzaima Fit only specifies what to fill with, so when using more elements than available, it allows filling with something else than the recycled data. So if J had guess-reshape (it doesn't) then it could be defined as recycling, since filling was available through Fit.
And yes, a special element in the left argument is the obvious choice. K uses that too.
I'd be happy with null if null wasn't so clunky.
Heh, how about any "ref", then with array notation, one could write ()2⍴ and 2()⍴ and the namespace could even have the options, so (mismatch:'truncate')2⍴ and (mismatch:'error')2⍴ and (mismatch:'recycle')2⍴ and (mismatch:'pad')⍴ and (mismatch:'pad' 42)2⍴
Of course, these are probably all longer than the APL code to implement them, and the namespace will probably slot things down unacceptably, but hey…
 
Actual words?! In APL!? never
 
We've got things like that in
 
True
 
@Adám actually would be quite nice with a namespace ⍵⍵
 
1:07 AM
@dzaima That's coming.
GNU APL might go with 2⍴[2] for ¯1 2⍴ and 2⍴[1] for 2 ¯1⍴
… which does make some sense: reshape axis 2 to length 2.
 
@Adám as in, that's been said somewhere, or you're making fun of them abusing brackets?
 
@dzaima Half making fun, because this one actually makes some amount of sense. That said, 2 ¯1 7 1 8⍴ is, imo, more readable than 2 7 1 8⍴[1 3 4 5]
 
@Adám oh, i misread your original message - i thought it was 2⍴[2] for 2 ¯1⍴ and 2⍴[1] for ¯1 2⍴, i.e. bracket specifies the index of the unknown axis
 
@dzaima That'd be total abuse fitting of GNU/making fun of.
 
@Adám i find mine more understandable though :p (and it, unlike yours, has an identity bracket argument - ⍴[⍬])
(and there's nothing in 2 ¯1⍴2⍴[1] saying that the result has rank 2)
 
1:16 AM
@dzaima Sure more understandable, but a special element in the left argument actually occupies the relevant spot. Not sure about that identity bracket though.
@dzaima Sure, the bracket would mean there's one missing axis, and since the first slot is taken, and you can't skip axes, the "guess" axis must be number 2.
Very awkward in practice. The inverse (yours) is absolutely easier to use.
Moot point, though. Dyalog will never add more such anomalies. A special left argument element is at least theoretically possible to get.
 
@Adám mine doesn't have any special elements in the left argument
 
@dzaima So?
 
@Adám i don't understand how mine has more "abuse"
@Adám identity is simple - result rank is (≢⍺)+≢χ
 
@dzaima Supposedly, bracket axis is to indicate the axis or axes being worked on. At least my long form does that. Yours indicates which axis is not being reshaped to the given lengths. Compare to 2 7 1 8⌷[1 3 4 5]
@dzaima But you can't have more than one element in ax, can you?
 
@Adám probably? :)
@Adám i think of it more like the bracket axis of /⌿\⍀
 
1:22 AM
@dzaima Again, that specifies which axis the left argument/operand is working on.
 
Marshall joining makes me wonder if BQN has anything similar
 
@dzaima There'd be no way to guess the distribution.
@rak1507 It uses as special value, iirc.
 
@Adám i mean, yeah
 
cool
 
@Adám or , or , or
 
1:24 AM
@dzaima is pad, truncate, ok, and is recycle (in reverse?)?
 
@Adám it's just recycle
 
And errors?
 
yep
 
I mean, it works, I guess, but it is a bit abusive of the functions as mere icons.
 
@Adám better than numbers though
 
1:26 AM
@rak1507 Examples of three of the codes ( would give an error here). [edited to add label row]
 
Nice, that's neat
 
@Marshall Your documentation link for reshape is unfortunate.
 
@Adám I added those options after making the page. I should write docs on Reshape I guess.
 
yup
This must be one of the more hacky sides of BQN…
I wouldn't mind so much if one could write an operator (that uses, rather than looks at, its operand) to construct those behaviours.
 
@Adám Reshape has the longest definition of anything in the primitive reference implementations, except maybe Bins depending on how you count it.
So, hackiest part until you get to inferred properties, I think.
 
1:34 AM
@Marshall the way dzaima/BQN does inferred properties is, imo, extremely unhacky though
 
@dzaima I think fills are a lot messier than Undo/Under. In fact even identity elements are probably hackier as well: how do I justify that the identity element of is 0?
 
@Marshall Any reason is J's $, and not $?
@Marshall Uh, because it is so for Booleans.
 
@Adám $ doesn't look like a function at all to me, and I don't think choosing symbols based on initials is very helpful.
 
@Marshall You completely misread my question. Try again.
 
@Adám isn't exactly J's $, which only operates on the leading axis of its right argument. Not sure what you're getting at. Do you mean the monad/dyad pairing?
Oh, the , is part of the code...
 
1:41 AM
@Marshall easy: don't. it'd be nice, but it's kinda very wrong. (and i also very much don't do fills precisely because they're kinda very awful too)
 
Yeah :-) Sorry, I use a stylesheet (dzaima's) that makes such clear.
 
I find J's version of $ to be useless, even if it's theoretically better aligned with the leading axis model.
 
Fair.
 
(would anyone even notice if suddenly started erroring on 1<⍴⍴⍵?)
 
1:45 AM
@dzaima What‽ Yes! (Also, which ?)
 
@Adám dyadic, that's what the conversation is about, no?
 
@dzaima How does 1<⍴⍴⍵ ever have a dyadic ?
 
@Adám 2 2⍴3 3⍴⍳9?
 
@dzaima I guess I could probably allow using an identity element for the largest closed domain for the function (which for is just the range). That would still be unique because the union of any two closed domains is still closed, so the largest closed domain is well-defined, and there can only be one identity (whether left or right) in a given domain.
 
@dzaima You lost me.
 
1:48 AM
@dzaima I found when investigating this that I use $, a fair amount in my J code, so I'd notice.
 
@Adám would anyone notice if suddenly dyadic was {1<≢⍴⍵:error ⋄ ⍺⍴⍵}
 
@dzaima Oh, now I get it. Yeah, I also reshape "shaped" arrays, so I'd notice too.
 
huh.
 
I still can't remember what I used it for, so I think this is one of those pieces of functionality that tends to go unappreciated because it's boring.
 
best use-case i can think of is to repeat major cells (which is actually quite useful, just not with s syntax)
 
1:52 AM
@dzaima That'd be J's non-ravelling $
 
@dzaima (because i had to do that recently, and it's quite bad. surely i'm missing something?)
 
Yeah, I think that in most cases of reshape, the argument is a vector, so having a non-ravelling reshape wouldn't matter. In the few that do need a ravel, an explicit ravel is fairly cheap, but in those cases that need J's $ it is quite awkward to get that, so I'd define as $.
 
@Marshall ah right, i did think of that one night while trying to fall asleep :| (probably needs some special-casing to be at all performant though)
 
2:08 AM
@Adám because is very unimplemented
 
Ah, so that answers the "related commentary"'s problem, no?
 
@Adám Yes, that's very nice. Not enough to make it not a problem but I'll mention it there at least.
 
⥊⌾(<˘) reads nicely as "reshape cells"
 
I'd estimate 1-2 weeks for a spec-compliant . Then I have to do fills and then I'll probably work on headers and optimization.
@Adám You should probably bind in the left argument, like 7⊸⥊⌾(<˘), since applying to a list left argument breaks Reshape.
Also <˘⁼ works, wow.
 
2:23 AM
@Marshall Yeah, I thought about that, but then it becomes hard to use in a train. It'd be nice with a way to specify that g should only be applied to the right or only to the left argument.
 
@Adám which would be nice in general, otherwise there's the strange behavior that structural under inversion is based on only 𝕩
 
Could ⌾∘‿g and ⌾g‿∘ work? Similarly split-compose using f○g1‿g2.
⌾g would be a short form of ⌾g‿g
 
@Adám ∘‿g already has a sane inverse though
 
Similar to how ⎉3 is a short form of ⎉3‿3‿3
 
@dzaima It makes sense to add only the right-only form, so left-only is F˜ↁG˜ if you really want it.
 
2:27 AM
@Marshall
 
@Marshall in most cases of dyadic structural under i'd want no applying on 𝕨 though
 
@dzaima Not sure what you're saying. (I'm dumb, remember?)
 
@Adám Like a right-half-of-? Don't worry, I'm not going to use that. Or add the right-only-form, with any symbol. Just use bind.
{𝕨⊸𝔽⌾𝔾𝕩} is easy enough to define if you want a single operator.
 
What's wrong with allowing the two operators that apply their right operand twice, to use two different functions?
 
@Adám ⊢⌾∘‿+ 1 already returns ∘‿+ per the spec
 
2:31 AM
@Adám The inverse of a constant function (such as an array) is defined to be the function that errors if its argument doesn't match the constant, and otherwise returns the constant.
 
@dzaima (though my impl complains about under-ing an array which is wrong)
 
What is ∘‿+?
 
@Adám A list of two primitives. Matching the ∘‿g you suggested.
 
Ah, and a list is an array, hence it is under that constant function. I see.
I now understand that this won't work, because of that rule (which I myself support). Still, hanging on to the thought for a moment, there'd be no need for a special value since ⊢‿g and g‿⊢ would have worked. Oh well.
 
@Adám Well, it'd be a little weird deciding which function to invert in that case.
 
2:35 AM
True.
 
Huh, now has a default left argument of ⟨∘⟩. Hadn't noticed that.
@dzaima ¯3⥊3 is giving me an ImplementationError in dzaima/BQN.
 
Any way to write g1⊸(g1⁼f)⟜g2 or g1⊸(g2⁼f)⟜g2 while only specifying g1/g2 once?
 
@Marshall yeah, it does that. At least ¯3‿¯3⥊↕9 doesn't not error now for some reason
 
@Adám Pretty sure you need a block modifier (dop).
 
@Marshall How would you deal with there being 3 fns?
 
2:43 AM
@Marshall oh, it "works" "fine" - ≢¯3⥊3 doesn't error and ⥊4+¯3‿¯3⥊↕9 does what you'd "expect" it to :D
 
@Adám Oops, didn't notice that. Split it into (g1⊸(g1⁼f))⟜g2 or g1⊸((g2⁼f)⟜g2). Although of course you can pass an array operand, but that's not too different from just assigning the three names.
 
sorry to interrupt: how come (256⊥⎕UCS)⍣¯1⊢448378203247 gives a domain error?
 
@Marshall So something like g1{𝔽⁼𝕩𝔾˜𝔽𝕨}f⟜g2?
@rak1507 ⎕UCS isn't invertible (for some strange reason).
 
argh
 
@rak1507 works fine in dzaima/APL :)
 
2:46 AM
It should obviously be self-inverse. I've complained about it before.
 
@Adám and the reason for it not being immediately accepted?
 
@Adám {𝔽⁼𝔽⊸𝔾} should be enough.
 
@Marshall OK.
 
@dzaima John stopped writing C, and later really stopped writing C.
 
(256⊥(⎕UCS⍳256)⍳⊢) works at least...
 
2:47 AM
@dzaima The last person left who was dealing with inverses left the company.
@rak1507 Yeah, because it computes the constant at define-time.
 
yep
 
I fixed bugs in inverses some at Dyalog but added few or none.
 
@rak1507 Good example though. You can write support and (rightfully) claim you expected this to work.
@Marshall Few, then. You added ⍸⍣¯1
 
oh really? I love ⍸⍣¯1 thank you marshall
 
@rak1507 That's like my signature function. I've been complaining that it's not in J for the better part of a decade, added it to Dyalog, and of course it's in the BQN spec.
 
2:54 AM
@rak1507 I added it to Extended a while back.
 
Slightly different to dyalogs in that it doesn't error
 
@Marshall fwiw, in BQN's source, except in tests and examples, it's always followed by n↑-ing the result
 
@dzaima Isn't that a shortcoming of those receiving its result, in not assuming trailing 0s as necessary?
 
@Adám well either that (so padding args with 0s in pretty much all builtins), or a shortcoming of /⁼.
 
@dzaima You want it to be all-knowing?
 
2:58 AM
@Adám either that, or it takes another arg of wanted length or something.
i defined T ← ≠⊸↑⟜(/⁼) in some code using it - right arg is the regular arg, and left is an array in which the indices would be (only used for the length, but I found it to be much better this way)
 
@dzaima But if you are to supply the length, you might as well just use , and all-knowing seems impossible unless you say that it should be God, which would be the strangest religion ever.
 
@Adám I guess it wouldn't really be wrong for l+/⁼m to infer the length of the result from list l, just hard to implement.
 
I remember a day in 1975 or so, i wa17? years old in an APLSV class taught at IBM Essex Junction Vermont. It was part of the Boy Scouts called the Explorers. One did not have to be a Boy Scout though. All that was needed was $4.00 twice a year. The teacher of the class wanted a solution to a problem. Write the smallest code which, using incremental numbers, say 1 - 25 and arrange them as follows...
 
You could also use a special virtual list that adapts to the required length if its shape is ever tested.
 
@Marshall /⁼ could return an array in a quantum state of all possible paddings of 0, which collapse under any observation in the most favorable way
 
3:02 AM
lol
bqn b-something quantum n-something?
 
@dzaima (but i would much prefer for there to just be a single built-in for ↑⊸(/⁼))
 
It turns out we were entangled.
@dzaima ≠¨⊔ is the best you'll get, I think.
 
@Marshall Wait, that doesn't work, does it?
 
and arrange them ascending ( or descending ) along the diagonal
 
@user4069 Of an all-0 matrix with sides of length 25?
 
3:05 AM
@dzaima s/⊸/⟜ :|
 
@dzaima Maybe would be a fitting symbol?
 
@Adám Example. It doesn't check for sortedness, but usually you don't want it to.
 
@Marshall Ah, group indices. Nice.
 
25 25⍴↑26↑¨⍳25?
 
(And it's used as the definition of /⁼ in the spec, so it had better work.)
 
3:06 AM
@Marshall that's just a reimplementation of /⁼, nothing related with ing the result, no?
 
@rak1507 Nested arrays were not invented yet.
 
Matrix of not 25 but any size. 1 2 4 7 11 being first row if iota25 is used - 3 5 8 12 16 being second row?
 
well that's inconvenient
1 2 4 7 11? I don't see how that is generated
 
@dzaima Not currently, but I should get around to allowing an extra number in the grouping argument of already.
 
@user4069 Ah, filling the array diagonally.
@rak1507 Fill the 5×5 matrix from top left going diagonally NE to SW.
 
3:09 AM
@dzaima (fwiw if monadic and dyadic / weren't so nicely related and were on different characters, one could even have only the inverse builtin (with an optional left arg of the length), the inverse of which would be the regular )
 
yes. filling the array diagonally. There was a young kid in the class who had an answer usin 7 keystrokes that would do a 5 by 5 array. I think his answer used encode or decode.
 
I still don't know what you mean! Don't think my brain functions properly at this time
 
 1  2  3  4  5
  /  /  /  /
 7  8  9 10  6
  /  /  /  /
13 14 15 11 12
  /  /  /  /
19 20 16 17 18
  /  /  /  /
25 21 22 23 24
 
Ahh thanks
 
@dzaima Except the inverse wouldn't work if its argument had trailing zeros, or at least not without special pleading.
 
3:13 AM
@Marshall eh i guess
 
Ok nope still stuck how do you go from that to something with 1 2 4 7 11 in the first row?
 
1 2 4 7 11
3 5 8 12 16
6 9 13 17 20
10 14 18 21 23
15 19 22 24 25
 
Oh I get it now
Thanks
 
@user4069 Ctrl+K to monospace. (You can press UpArrow to edit and do that now.)
 
I have no idea what extremely short algotirhm would produce such a matrix. Thought i might fund an answer here.
 
3:17 AM
⋄ 5 5⍴⍋⍋+⌿5 5⊤¯1+⍳25
 
@Adám
┌→─────────────┐
↓ 1  2  4  7 11│
│ 3  5  8 12 16│
│ 6  9 13 17 20│
│10 14 18 21 23│
│15 19 22 24 25│
└~─────────────┘
 
Not 7 keystrokes, though.
 
That is incredible!
⍋⍋, genius
 
Pretty obvious if you consider ⋄ 5 5⍴+⌿5 5⊤¯1+⍳25
 
@Adám
┌→────────┐
↓0 1 2 3 4│
│1 2 3 4 5│
│2 3 4 5 6│
│3 4 5 6 7│
│4 5 6 7 8│
└~────────┘
 
3:20 AM
which wasn't at all obvious to me to do
5 5⍴⍋⍋,∘.+⍨⍳5
 
Well, the indices are sorted by distance from left and top.
@rak1507 Ah, yes, of course.
 
@rak1507 Beat me to it. Only because I kept typing after writing the code, though!
 
lol
 
@user4069 f⍨Y is Y f Y
 
BQN version to make up for it.
 
3:22 AM
All of these things look very complicated. They have my head spinnning. I don't know much complicated APL. I just remembered the quiz my teacher gave us and that someone had a very good answer.
 
@user4069 Would you like an explanation?
 
If i sit and ponder each of them i would understand after a while, but i have to go know. Please feel free to continue the subject. I'll check back sometime later.
 
care
 
I feel like this must have been a code golf challenge at some point
 
J pretty much has a built-in for it.
 
3:27 AM
Oh cool
⋄ 2-⍨/2-⍨/5 5⍴⍋⍋,∘.+⍨⍳5 ⍝ this is an interesting pattern
 
@rak1507
┌→───────┐
↓ 1  1  1│
│ 1  1  0│
│ 1  0 ¯1│
│ 0 ¯1 ¯1│
│¯1 ¯1 ¯1│
└~───────┘
 
⋄ {∊|2-⍨/⍣(⍵-1)⊢⍵ ⍵⍴⍋⍋,∘.+⍨⍳⍵}¨⍳10 ⍝ interesting sequence a bit like pascals triangle
bot is dead :(
 
⋄ 'beep'
 
@Adám
┌→───┐
│beep│
└────┘
 
⋄ 'beep'
 
3:34 AM
 @Adám
┌→───┐
│beep│
└────┘
 
⋄ 'bop' ⍝ eh?
 
@Adám
┌→──┐
│bop│
└───┘
 
⋄ {∊|2-⍨/⍣(⍵-1)⊢⍵ ⍵⍴⍋⍋,∘.+⍨⍳⍵}¨⍳10 ⍝ interesting
⋄ {∊|2-⍨/⍣(⍵-1)⊢⍵ ⍵⍴⍋⍋,∘.+⍨⍳⍵}¨⍳10 ⍝ interesting
@DyalogAPL You don't like that one, do you?
 
weird
 
I wonder if there's an issue with
⋄ 1+⍣4⊢3
 
3:36 AM
@Adám 7
 
I think that's an interesting sequence, it is a bit pascals triangle-y
 
I wonder if there's a simpler way to define it.
 
0
Q: Is it possible to return lambdas in a function?

rajashekarConsider the following function, which should return a function that adds two to any given argument: ∇r←addtwo r←{⍵+2} ∇ This code loads without any errors, but I just cannot use the return value without causing errors. addtwo ⍝ doesn't cause errors addtwo 1 VALUE ERROR addtw...

 
Seems that S_n+1 = {2|≢⍵:(0,⍵)+(⍵,0) ⋄ 0@(1+2÷⍨≢⍵)⊢(0,⍵)+(⍵,0)} S_n for all of them apart from 1 0 1, which gives 1 1 1 1 not 0 1 1 0
 
CMQ: What should things like ○/ and and \○/ and ¯\_(⍨)_/¯ be called? APLmoji?
 
 
1 hour later…
4:57 AM
@Adám userscript gives me a domain error
@Adám symoji?
 
@Razetime Interesting. Works on TryAPL which uses the same execution engine as the bot.
 
maybe it's because I'm using an old version of ngn's interpreter
 
 
2 hours later…
6:39 AM
@Adám Ivermoji?
 
 
2 hours later…
8:34 AM
<klg> just call them APL kaomoji so that people outside this chat can also figure out what do you mean
<klg> ⋄ {∊|2-⍨/⍣(⍵-1)⊢⍵ ⍵⍴⍋⍋,∘.+⍨⍳⍵}¨⍳10 ⍝ also, I saw the output of this all three times on this side, but lines were out of order the first time
 
8:52 AM
klg: Yeah, I went with the even more generic emoticons.
 
9:34 AM
if it ain't broke, don't fix it i suppose
 
 
2 hours later…
ngn
 
@ngn And with repl.it behind a sign-up wall, the free only online access left will be that customised REPL thing.
 
ngn
@Adám just don't use it, use dyalog or dzaima/apl or another
 
Oh wait, it is on TIO too.
 
Wow, deleting it, that's quite significant
 
Well, I suppose one could clone it.
 
ngn
11:58 AM
of course
@rak1507 don't worry, it's going to a better place in the clouds. from there it will watch over our golfs :)
 
lol
 
ngn
ashes to ashes, bits to bits
 
@ngn If you're going to completely delete it, do you mind if I have a fork on my github
 
ngn
@Razetime i don't mind, of course
 
ok cool
 
@ngn Do you mind explaining the 4 branches?
 
hey @Adám guess who's back! haha! can we continue our lessons later today? 👀
 
@Konrad'Unrooted'Klawikowski Sure, when is good for you?
 
within two hours and so, how about you?
 
12:13 PM
Sure, that works. Ping me.
 
okie, thanks <33
 
'A pop-up will announce when you have entered a correct solution.' I think I have entered some and no pop up...
 
@rak1507 What do you mean? Do you know how a regular newspaper crossword works?
@rak1507 … to the entire puzzle.
 
oh
Ok
These are pretty cool
 
ngn
@Adám just branches for temporary experiments, this is not uncommon with git. btw, your fork is from 9 years ago. i think you'd better delete it and fork again (or if you're more comfortable with git's cmd line: merge from upstream)
 
12:18 PM
@rak1507 Thank you. Unfortunately, they are also a lot of work, which is why I never got further.
 
Yeah, it does look like it
 
@ngn How is it from nine years ago if I have your changes from 45 mins ago?
 
Maybe if there's some already existing crossword thing you could use that?
 
@rak1507 What do you mean?
 
Someone must have come up with some tool that makes making crosswords easier at some point
 
12:21 PM
Oh, my framework is already working, so that's nothing. No, it is hand-typing the board and all the clues that's the bulk work.
 
Ah right
 
ngn
@Adám when i open this it says 9 or 10 years ago next to all files. maybe the default branch is wrong.. ?
 
@ngn Yeah, somehow GitHub decided "compiler" should be the default branch. I'll switch that to master.
 
ngn
oh, and you can see the ⍎ i used as a logo there, in the 9-year-old branch :)
 
Yup.
 
12:28 PM
argh pressed ctrl r without the keyboard on by accident and lost my progress oops
 
oh no. Maybe I should give it the option of saving your progress in localStorage.
 
That would be good if it's straightforward, it doesn't matter too much as I can remember most of it
Some questions are surprisingly hard...
 
hmm this crossword is interesting
hard part is figuring out which correct answer is the correct correct answer
 
yeah
 
Yeah, for some of them, I had to solve them all too, and for all, I had to check that the availability of modern primitives didn't mess up things. So while the puzzles might have had unambiguous answers at the time of their publication, there are now many places where you can use instead of / or instead of etc.
And where multiple solutions are possible, the automated checker needs to recognise all possibilities.
@ngn ngn/apl has on its language bar, but is it actually implemented?
 
ngn
12:46 PM
@Adám i don't remember, tbh
 
Fair enough. I'll move ngn/apl from the "maintained" category to "historical".
 
well I've got this far but I'm stuck now
ok
what's the easiest way to create a link to an image?
 
upload it here
 
Without one-boxing? You could simply link to the page imgur gives you.
 
autohosts on imgur
 
12:52 PM
But can I view the url of the image before it is uploaded?
 
I barely ever upload. I just go to imgur.com/upload and paste, then wait a second, click-click, "Copy image location", and paste that. to avoid one-boxing, simply copy the initial imgur URL, without the "right-click etc."
 
Ah right ok fair enough
current progress (edited, did some more)
 
And then you can use the [spoiler](url) syntax.
 
ngn
@rak1507 that's not the image, it's a script-heavy web page containing the image
 
@ngn Yes, but necessary to avoid one-boxing.
 
12:55 PM
Ah that works
 
Of course, that works too.
@rak1507 So, you want help, or are you just saying?
 
Some help on 1 across would be great, it seems like it should just be ⍳≢R
 
14 across may not fit after you fill in 7 down
 
Yeah, I saw 7 down was different
 
@rak1507 funny answer would be ⊢⊢⊢⊢⊢⊢⊢⍳≢R
 
12:59 PM
lol
 
00:00 - 13:0013:00 - 00:00

« first day (1432 days earlier)      last day (72 days later) »