« first day (1652 days earlier)      last day (985 days later) » 

3:38 AM
@11Kilobytes mine: {⌈/≢¨{⍵⊂⍨1,2≠/⍵}×2-/⍵}
 
4:07 AM
@Razetime for some reason i though that was 11kb long
 
it is
 
 
2 hours later…
5:49 AM
@Adám so is there an estimated time when this is gonna get fixed?
 
 
1 hour later…
6:52 AM
@PyGamer0 Not really, sorry. It is probably a rather large job. You know a bit of JS, so feel free to see if you can fix it.
 
 
1 hour later…
8:02 AM
@Adám It's also hard to work with it from a mobile device... By the way, do you know a possible date to the mobile app you were talking about?
 
@ZribiMehdi dzaima's mobile app is available at github.com/dzaima/APL/releases
 
8:21 AM
Trying to solve a competition problem, I've typed this 'DYALOG'{(⍴⍺)≥⍺⍳⍵}'APL' but on that app it gives me an Length error... (@dzaima And it would be nice to have to possibility to use another keyboard, without those strange primitive; also to be faster, I think).
The only problem on tryAPL that I've noticed is that the language bar disappear after you fill the "Workspace". The solution migth be the APL Keys' keyboard, but a lot of time it does't even open
 
9:05 AM
@ZribiMehdi I use dzaima's patch of Hacker's Keyboard
 
@ZribiMehdi The length error is because dzaima/APL is strict, not treating the 1-element vector from ⍴⍺ as if it was a scalar. Use ≢⍺ instead.
 
Basically, Dyalog APL ≠ dzaima/APL
 
@Adám for the blog post, you suggested a P2 solution of ≢⍤⊣(<×⊢)⍳ -- this doesn't seem right to me.
 
@xpqz Oops. ≢⍤⊣(≥×⊢)⍳
 
Keeps me on my toes.
 
9:19 AM
Yup. It was all a test from the beginning ;-)
 
@Adám Still wrong, tho.
 
Really?
 
Trivia: It is identical to what Jelly's indexing does, except that Jelly's lacks right atomicity.
Isn't it > instead of ?
 
⎕←(5 5⍴⎕A) (≢⍤⊣(>×⊢)⍳) ↑'UVWXY' 'FGHIJ' 'XYZZY'
 
No, ⎕IO←1
 
9:22 AM
@xpqz 0 2 0
 
Hmm
 
⎕←'DYALOG' (≢⍤⊣(≥×⊢)⍳) 'APL'
 
@Adám 3 0 4
 
⎕←(5 5⍴⎕A) (≢⍤⊣(≥×⊢)⍳) ↑'UVWXY' 'FGHIJ' 'XYZZY'
 
@Adám 5 2 0
 
9:23 AM
@xpqz Passes the spelled out cases.
 
It does now :)
 
10:19 AM
@Adám Oh, are there some simple advantages or they are like two different things?
@Bubbler I can't find the APL keyboard here
 
@ZribiMehdi gives the entire shape of the array, which is the length along each axis. counts the number of major cells (elements of a vector, rows of a matrix, layers of a 3D array, etc.) If what you want is they count, then you should use to avoid running into issues stemming from having a 1-element vector. While you could take the first element of the shape ⊃⍴ it would give 0 for a scalar (even though it clearly has a single element). gives 1 for a scalar.
While many APL functions accept 1-element vectors as substitute for scalars, there are also plenty where the difference is maintained.
 
 
1 hour later…
11:28 AM
it is likely impossible to accept all "valid" pnm header format with only PCRE
so I think I have to construct the parsing automata manually
 
11:45 AM
If ∊ worked sanely P2 would just be (⍳×∊)
 
11:55 AM
@rak1507 (⍳×∊⍨) I tryied this too
 
oh yeah, other way round
would have been nice
 
 
2 hours later…
1:32 PM
I've added my solutions in APL Wiki github.com/Masterquiz/APL-Problem-Solving-Competition. Can someone please check their format, cause it's the first time I use GitHub...
 
1:46 PM
@ZribiMehdi you can also do :i tryapl in the app to get a Dyalog APL interface through the TryAPL API (of course requires internet). Also, swiping down on the top-left = key will give you your standard OS keyboard, which you can use to enter text
 
@MasterQuiz Is it OK to add these to to the wiki?
 
@ZribiMehdi it should be available under the "input languages" button upon opening the "Array Hacker's Keyboard" app (like the 12th item in the list, "English (APL) [en_AL]")
@Adám it's already been added
 
2:08 PM
I got interpreter exit the second time today when attempt to save workspace after WS FULL
 
@LdBeth Maybe try )reset
 
would remember to try that.
 
@Adám Could you give me my score please for Phase I ? Thanks.
 
sobel←{
m←(↑⍉,⍥⊂⊢)3 3⍴¯1 0 1 ¯2 0 2
255⌊⌊0.5*⍨(+/*∘2){+/⍪m×⍤2⊢⍵}⌺3 3⊢⍵
}

A good example of demonstrating use Stencil for convolution. The Sobel edge detection. :)
 
@LdBeth But I still have doubts: I've just caused a WS FULL, tryied to save the workspace and it worked...
 
2:17 PM
@MasterQuiz What I did that caused WS FULL is like run {+/,m×⍵}⌺2 2 on a 3000 7000 matrix
Noticed Stencil has no special optimization when the size is not odd
 
@LdBeth It doesn't cause me any problems, I could save and open the file
 
and I'm using an x86 Mac running big sur, might be a platform specific issue then.
 
@dzaima Cool, but can't see a lot of differences between normal English and English(APL)...
 
@MasterQuiz you hold on a key to see the APL chars
(also you may have to change the layout by swiping left/right on the spacebar)
 
2:39 PM
@MasterQuiz that lcsq is beautiful
nice job
so fast
 
@dzaima On AndroidIDE I was able to input onli *?|~' , in other applications I could type every glyph. But doesn't matter ⍨
 
@MasterQuiz yeah, Processing (the thing the app is written in) just doesn't accept unicode chars from the OS keyboard. Can't really do anything about that :/
 
@rak1507 Thanks, but I've seen a function faster than mine ahahah
 
oh really? whos
 
@dzaima Just write you're own Processing
 
2:43 PM
@MasterQuiz oh, believe me, I want to. (but I also want to do a lot of things, and each of those takes time..)
oh cool, i have saved my lcsq
 
damn
 
3:22 PM
What were the controls to implement into ValidGame?
 
3:32 PM
err, size check, number of boats, boat size
second one had intersection included
 
@Razetime ValidGame, not ValidBoard. Cause I've put vector, correct characters, spare(s) and strike(s) are in the rigth place, bonus length and pair-wise sum
 
oh, bowling
 
@MasterQuiz I used regex :P
 
@rak1507 Regex... I've spent a lot of time figuring out how to write '[/X]'⎕R'0'⊢game that I've hated it... Spoiler: After I've discovered that '0'⍨¨@(∊∘'/X')game is faster
 
my solution constructs the regex using APL (got to get at least some APL in there) but I assume it is extremely slow relative to a pure APL solution
 
3:50 PM
@LdBeth what was the type of the elements of the matrix ? The result of ⎕DR matrix will tell you that. And it may be worth increasing the value of MAXWS if you regularly want to run with bigger workspaces. you should edit $HOME/.dyalog/dyalog.dcfg - uncomment the line with MAXWS on it, and change the 256M (the default) to something bigger.
 
thanks
 
my ValidGame:
https://dzaima.github.io/paste/#0dZG9TgJBFIV7nuLGZiFb7I8diVYmvoGhsBl2B5mwzJCZATWAjYYAssTG0oQYTeiVWNngm9wn8e7AklhY7c7uud85584Fy0R6zrocJ0/DCkCEsxXOXjH/xHxThxAwfwFhYMATqzQJJJAS/MvIJ8GJ1/CcoqeMsEJJaCkNnCVtSNqskMfhKc7vcfEtS5htc82h2zcWmhyYhYwzeo9D0CrLDM3gdB3EoyrxcTr3GoFXCw7ThSGTKXiBd2AQEQxPFH0uEEQwLmQVF/Nq5Mvaz1dcw/mEgI5hrBbyCnpcQ0tT9b1lFOLsbZjS5M4Zl89ngI8PcBfRKa2H7uAHmC@365Qem/F2bcpgjgQJk1JZoCyWCVrV7D0KIROWa5ZBT0gDHamSDk8hVdeSjDmFLrJKzD/i8O8uVctVy4r1HHWJd1T24zdWMzd3PPKChkfDBCoWva8o@90m1SPCTlquturudlOjZKvC23e/yw4DrkXr1pkmSmu68n9BUWX8Cw#APL
 
my ValidGame is too long
 
@dzaima In APL, is it nice to have a lot of guards? Cause also in other problems I've spent some time thinking how to make the function works also for empty vectors or others edge cases
 
3:57 PM
@MasterQuiz here I think it's a good way to do things, given that they already work on whole arrays
 
one annoying thing is that APL doesn't lazily evaluate boolean conditions so some of my answers were basically (f∧g∧h) but for efficiency it would need to be {~f ⍵: 0 ⋄ ~g ⍵: 0...}
 
@brgal Did you pass all edge cases on all problems?
 
@Adám Can I know where I lost point too, please?
 
@MasterQuiz The P7 you've published doesn't match the P7 I have for you.
Did you regenerate it somehow?
Ah, yes, I see, you have P4 with a computed constant, and 2⍴1 instead of 1 1 but that doesn't parse right.
@MasterQuiz You lost a little on P1 (for dividing the Boolean) and P3 for not giving the strictly correct result on the scalar-scalar case. All your other answers were exemplary, except P4 which was good without being exceptional.
 
I want to know my score
 
4:10 PM
@Adám (≢÷⍨100×1⊥∊∘'GC') Was that the best solution to P1? I thougth the other one was better, cause shorter. And I didn't understood in wat case my P3 is wrong?
 
@MasterQuiz This is top secret dyalog code for determining if a solution is good: {'bad' 'good'[?2]}
 
@MasterQuiz 100×(+/∊∘'GC'÷≢) is mine
 
@rak1507 AND←{⍺⍺ ⍵:⍵⍵ ⍵ ⋄ 0}
 
@Adám not worth defining a helper for it imo
considering guards are straightforward
 
@rak1507 If the tests are expensive.
 
4:11 PM
@MasterQuiz they expect "Expressive" code, which means 1⊥ is not appreciated much
 
yeah ofc don't evaluate everything but just using guards is fine
@Adám their P9 was 'exemplary'? so +.1?
 
@rak1507 One thing I'd really like are John Scholes' "guarded guards": {condA:condB:both ⋄ else}
 
@Adám guards would be shorter, faster, and more readable (and would preserve access to /!)
 
@Adám why isn't this allowed yet?
I suppose condA∨condB would be equally correct
 
@Razetime But for example this (100×≢÷⍨1⊥∊∘'GC') is better than 100×(+/∊∘'GC'÷≢), and you can't do (100×≢÷⍨+/∊∘'GC')
 
4:15 PM
hm, not sure
 
100×≢÷⍨1⊥∊∘'GC' is definitely the nicest solution for that if you don't want dividing booleans
ofc imo 100+.×∊∘'GC'÷≢ is nicer but I'm biased :P
 
oh that is cute
 
i quite like my (100×+/÷≢)∊∘'GC' (meh for parentheses, but what can ya do)
 
@Razetime Wrong question. Correct question: "Why isn't this implemented yet?" Answer: John Scholes died.
 
oh, so John scholes was the only person who could implement them
 
4:18 PM
Why is 1⊥ worse than +/, cause it's more like +⌿?
 
@MasterQuiz it isn't
 
@Razetime No, each guard means "if this is true then", so it'd read as "if condA, then if condB, then…" which is an AND.
 
it's faster
 
@MasterQuiz Maybe stick a LICENSE file (of your choice) in the top of the repo?
 
@Razetime No, but dfns were his baby, and he was the only one dealing with them.
 
4:19 PM
@MasterQuiz why |¯0.2853981633974483××⍨ and not 0.2853981633974483××⍨ ?
 
hello fellow apl'ers
 
@pmikkelsen hi
 
@MasterQuiz But you can do +/⍤∊
@pmikkelsen Welcome.
 
@rak1507 It's the beauty of .dyalog files. It should be |(.5-○.25)××⍨
 
oh, are the solutions not updated
 
4:20 PM
@pmikkelsen hello!
 
@Adám don't suppose you have (or can quickly find) shortest working solutions for each problem
just the bytecounts
 
@rak1507 I can.
 
want to know if there was anything I missed
 
@rak1507 No, it format it, I think... If you know how to keep my original code, maybe with comments?
 
just save as a text file
 
4:21 PM
@MasterQuiz oh right, I just did my solutions in the repl and copy pasted them
 
@MasterQuiz Write them into a namespace or function.
Or use the lazy approach.
 
i used the emacs editor plugin which was a godsend
 
@Razetime 97% of the max attainable.
 
cool
anyone score 100?
 
@rak1507 (¯.5+○.25)××⍨10 I could do this...
@Razetime No, max was 99%
 
4:24 PM
@MasterQuiz pretty much the same as mine (.5-⍨○÷4)××⍨
 
ah, I see
 
wish solutions were published by default so I could see the 99% solutions
 
@rak1507 xpqz is in the middle of writing a blog post on the cream of the crop.
 
Won't solutions be publish after 23 August?
 
@MasterQuiz no
@Adám but they're not necessarily all from the same person
 
4:26 PM
@xpqz A what? Ahahah
 
@MasterQuiz No, because, while we did reserve rights to submissions, we'd rather ask politely first. We'll do so next year.
@rak1507 True.
 
@Adám I don't think anyone would be annoyed at their code being published in a programming competition.
 
@Adám I didn't understand mine...
 
@rak1507 I asked the organisers. They wouldn't have it without asking.
 
@Adám why not ask?
 
4:27 PM
@rak1507 We're not going to email a hundred people.
 
@Adám why not? seems like quite a low number of people to me! what about just the top 10?
 
@Adám Python has entered the chat
 
@MasterQuiz ?
 
An automation script
 
@rak1507 I can ask again. Dyalog is usually pretty careful about privacy and not bothering people who have not actively asked to be bothered.
 
4:29 PM
Dyalog would obviously automate it in APL
 
oh yeah that reminds me
i need to make the dicord bot thing
 
@MasterQuiz Did you think we were manually emailing you from the competition site‽
 
@Adám I think so too
 
@Adám Fair enough, I don't think one email asking for permission counts as bothering though
 
@rak1507 But it is technically unsolicited. It doesn't affect the competition in any way.
@MasterQuiz You want your final "score"?
 
4:31 PM
@Adám Might not affect the results but imo it does affect the competition (makes it a lot more transparent, which is good)
 
Yeah, a value judgement. Again, I agree that we could just publish, but some of my colleagues are extra cautious, which I think is laudable, considering the trend in IT these days.
 
I mean, you publish people's real names and schools/unis, it's not as if their code is more sensitive than that
 
@Adám Also, if not here, at least in private, for example on Discord. (I've wrote you there about something on APLCart too)
 
@rak1507 But when we contact them to confirm status, we also verify that they wish for that to be published.
 
Do you know how many people participated in phase 1 and phase 2 of the competition @Adám? :)
 
4:34 PM
if you're already sending an email to them why not ask if you can publish their code while you're at it? kill two birds with one stone
 
@MasterQuiz I can certainly write it here, but I make sure to check that people want it published in public. So you want that?
@rak1507 Too late now :-( except for the Phase 2 winners.
 
Ah
 
Yes, it's ok
 
@MasterQuiz 98% of max attainable.
 
Well it'd certainly be even better to publish Phase 2 answers (and marking if possible?)
 
4:35 PM
@rak1507 Right. Next year :-)
 
@Adám No I mean for this year, seeing as no emails have been sent yet, when they are you could ask for permission potentially?
 
@Adám Thanks
 
@rak1507 Oh. Sure, I'll take that up.
 
Great! :D
 
On APLcart, Extract the lower triangular part of the matrix Mm with main diagonal, should be (⊢×∘.≥⍨∘⍳∘≢)Mm. Althougth the link to tio.run is correct
 
4:39 PM
@pmikkelsen I think it is 95 for Phase 1 and 30 for Phase 2, but I could be mistaken.
 
@Adám Okay thanks
 
@Adám how many submissions were there to phase 2 that solved all the problems?
or 'submitted an answer to all the problems', considering 'solved' is difficult to define
 
@rak1507 Was just about to say :-P
@rak1507 10 submitted, but only 8 of those were even partially correct.
 
cool
 
place your bets on who's gonna win now
 
4:42 PM
dzaima
@Adám so 2 of them were completely nonsense?
 
all three
 
@rak1507 nah only one of my p2 solutions had comments
 
@dzaima yea but they'll be a billion times faster than anyone else
 
Yeah P2 was wayy harder than P1, but it was great fun
 
@rak1507 2 of the 10 had one or more submissions that didn't pass any test cases.
 
4:43 PM
@Adám oh, even the given ones?
 
despite there only being 8 proper submissions the winning is surprisingly hard
 
@rak1507 We have a testing framework much like the one for phase 1.
 
@Adám there are some examples given, those solutions didn't pass even the examples? I can understand not passing some hidden ones (I'm sure mine don't work in general)
 
Speaking of testing, does a good testing framework exist for dyalog, or is there any good guide on how to test code? Thinking of unit tests specifically.
 
@Razetime yeah, might have to go to uni so I can get another 5 attempts :P
 
4:45 PM
@rak1507 Correct.
 
@pmikkelsen I use ngn's testing framework
 
@pmikkelsen In my github you can find some test function to phase2 problems.
 
@rak1507 where can i find this?
 
@Razetime I'm trying to find a link just now...
 
hahaha
 
4:49 PM
@pmikkelsen I've not tried it, but this exists.
 
Thanks I'll take a look
 
A testing framework can only be as good as your test cases...
 
@pmikkelsen At Dyalog, we write our own custom ones. See e.g. this one for Link.
 
@rak1507 lol wut
 
@pmikkelsen I wrote something you might find interesting on testing: xpqz.github.io/learnapl/testing.html
 
4:54 PM
APL Wiki needs an article on QA/testing/etc.
 
APL needs something like QuickCheck.
 
should be added in "Wanted Pages" then
 
@xpqz This is what I was looking for, thanks!
 
@rak1507 APL+ has some pretty cool feeatures we should steal.
 
@Adám such as?
 
4:57 PM
@rak1507 Control structures for testing, organising positive and negative assertions, with parts that can be switched on for devt or off for production. Automatic logging (that can be turned off) to file etc.
 
cool
 
5:10 PM
@xpqz Maybe better than mine. But just a little bit ahah
 
 
2 hours later…
6:50 PM
oh hey since we've already started sharing p1 solutoins, here's mine tio.run/…
 
were you a phase 1 winner?
oh so you're the 1 2 2⍉ person (Adám shared that in TNB)
very cool
 
@user41805 OK to put on APL Wiki?
 
@rak1507 idk did they send those out already?
 
@user41805 yes
 
@Adám sure, but anonymously please
@rak1507 i guess not this year this then
 
6:53 PM
:(
same here
⍳×≢⍤⊣≥⍳ is smart
 
@rak1507 where in the transcript did you discuss this?
 
in The Nineteenth Byte, 20 hours ago, by Adám
@rak1507 Infamous P7: ((∧/2=/∘∊+/,(+/1 2 2∘⍉))⊢,[0.5]⌽)
 
thanks
 
7:20 PM
@rak1507 nice 'RKR'≡∩∘'RK'
 
thanks
 
i wonder if ngn tried the problems
 
8:07 PM
I want a plus scan that also floors the intermediate result at 0, so the expected result (in C++) is this: godbolt.org/z/4fjGPoK4a
However, in APL I get:
(0⌈+)\¯2 1 ¯3 4 ¯1 2 1 ¯5 4
¯2 0 0 0 0 1 2 1 2
Can some tell me what I am doing wrong / what the correction is?
 
doing maximum subarray sum?
@code_report the correction is to use scan left not apl's strange scan
 
Yes, and I tried it in J (which I thought had the scan left and it gave the same wrong result)
or maybe that is k
 
k has scan left
j's scan is the same
 
wow
that is really really disappointing
: (
 
@code_report ⎕←(0⌈+)/∘⌽¨,\¯2 1 ¯3 4 ¯1 2 1 ¯5 4
 
8:10 PM
@Adám ¯2 0 0 4 3 5 6 1 5
 
@Adám (which is of course O(n^2))
 
⌈/0(0⌈+)scanl⊢ where scanl←{c←⍺ ⋄ ⍺⍺{c⊢←c ⍺⍺ ⍵}¨⍵}
 
@Adám this might be my least favorite thing about APL to date
can't believe J didn't remedy this
lol BQN might just have become my favorite array language
 
because max subarray sum is just ⌈´(0⌈+)`
 
not quite, you need to scan with an initial value of 0
 
which is absolutely gorgeous
oh right
that corner case needs to be dealt with
 
but that's just prepending zero anyway
so still easy
 
yep
 
8:15 PM
@rak1507 which is just {⌈´0(0⌈+)`𝕩}
 
yea
imo the k solution |/0(0|+)\ is the nicest
 
8:41 PM
@pmikkelsen I'm not sure, but here might be something too github.com/Dyalog/PracticeProblems
 
@code_report It's in bqncrate actually. I guess I should fix the bug, since 0⌈´(0⌈+)` is hardly more complicated.
 
unrelated to APL, but this is fun. Kinda stuck trying (and failing) to optimize the malbolge interpreter running that :|
 
@code_report Remember Henry Rich speaking about the new folds and not having any use for them? I think this is one.
 
@Adám ideally the scan isnt the scanLeft implement with in O(n^2) with n different foldRights
which is what I scan_left_wtf in my mini APL implementation
 
calculating m in my lcsq would be a lot nicer with a sane scan
 
8:53 PM
@code_report IIRC, Iverson intentionally chose the current definition of scan because it allows -\ and ÷\ as alternating sum and product.
 
tbh I stole my m calculation from code.jsoftware.com/wiki/Essays/Longest_Common_Subsequence but the last section has a bug in it so I just used a crappy recursive backtracking
 
yea, alternating sums and continued fractions
i dunno what that is important tho
making scan quadratic seems to be definitely the wrong decision IMO
 
@rak1507 I translated some C# version :P
@code_report very much agreed
 
@dzaima I wanted to at least get something a bit apl-y, but after I realised the j code didn't actually work I kinda gave up
 
@code_report Iverson didn't implement APL. He was a mathematician, so he cared about mathematical properties, not computational complexity.
 
8:56 PM
yeah and whereas someone like whitney tries to improve upon APL and make things better, dyalog stick religiously to the original specification for better or for worse
 
That's not on Dyalog, that's the clients.
 
Partially, ⌿ and ⍀ could be ltr maybe (or something like that)
 
There's nothing preventing us from adding a more general fold, similar to J's F[:.]+
 
Dyalog computes floating-point +/ in the wrong order, left to right instead of right to left (any plus-reduction with a 1-element result I think). They tried to fix it and had to revert because a client called them out (before my employment so I don't know the details).
 
can't the client just stick in a ⌽
 
9:01 PM
In a large codebase finding where to do that would be challenging.
 
@Marshall Do you know how to use J's new folds to do this?
 
I can't remember how they work. I stopped updating J before they were added.
 
9:12 PM
Here xpqz.github.io/learnapl/functions.html , @xpqz says that on Ride you must type ]dinput to being able to write a multi-line dfns, but I could write those that without using that command... Am I write or I've lost something?
 
> ]dinput, which shouldn’t be used in RIDE.
@xpqz Something wrong with the grammar in "In a Jupyter notebook, like here, the will likely feel a bit more familiar."?
 
@Adám Oops, but shouldn't he talks about the experimental mode, I've never found problems with it. It's better than type every time ]dinput and it isn't a complex thing to do...
 
@ZribiMehdi It may be that he expected 18.1 to be released with it as non-experimental feature, before the book would be published.
 
 
1 hour later…
10:20 PM
@Marshall @dzaima note that this fails for all negatives case: mlochbaum.github.io/BQN/…
 
@code_report is an empty subarray not a valid answer?
 
> The K binary weighs in at about 50Kb. Someone asked about the interpreter source code. A frown flickered across the face of our visitor from Microsoft: what could be interesting about that? “The source is currently 264 lines of C,” said Arthur. I thought I heard a sotto voce “that’s not possible.” Arthur showed us how he had arranged his source code in five files so that he could edit any one of them without scrolling. “Hate scrolling,” he mumbled.
I guess it makes sense now why Whitney wrote K that way
 
10:35 PM
easy adaptation @code_report ⌈´(⊢⌈+)` I think this works
 
(from xpqz's book)
 
curse you markdown
shame k doesn't have APL trains otherwise it would be |/(:|+)\
 
J902 port:
   f =: [:>./0]F:.(0>.+)]
   f _2 1 _3 4 _1 2 1 _5 4
6
   f _2 _3
0
 
nice
although apparently the result for _2 _3 should be _2
 
@rak1507 |/{y|x+y}\?
 
10:44 PM
yep
 
   f =: [:>./0]F:.([>.+)]
   f _2 1 _3 4 _1 2 1 _5 4
6
   f _2 _3
_2
Apparently the next item is the left arg instead of right
 
@Bubbler Yeah, I discovered that too. Odd.
 
My guess for the rationale is that the "running" value should be the primary input (1st arg in other langs with reduce or fold), but yeah it does feel awkward
 
11:12 PM
@rak1507 Added it as a non-empty version. Thanks!
 
@xpqz Tiny spelling error, on the page about error handling, you say "No longer a tail call, due to precense of error guard" instead of "presence"
 

« first day (1652 days earlier)      last day (985 days later) »