« first day (1385 days earlier)      last day (1262 days later) » 
05:00 - 20:0021:00 - 00:00

5:27 AM
@Adám I tried running turtle'⎕ FF+F-F' from the dfns library
but it shows:
DOMAIN ERROR
turtle[121] f←⎕NEW'Form'({⍵ 0}¨pps)
 
 
4 hours later…
9:07 AM
Is there any use case for ⍣ with an array right operand?
 
@rak1507 as in a non-number array right operand? In extended there is, but not in Dyalog
 
I was wondering if something like f⍣1 2 3⊢x could potentially return (f x)(f f x)(f f f x)
 
@rak1507 it does exactly that in Extended
 
Oh cool
 
(and fwiw, also in BQN)
 
9:14 AM
also works in J, using ^: for and ] for
 
I'm reading the ISO spec on ⍤, in order to implement it. Given the form A (F⍤N) B where F is a function and B is a vale, I don't understand how A is supposed to work. I can't seem to be able to write dyadic invocation that doesn't give me an error in GNU APL, so clearly I haven't understood ho wit's supposed to work.
 
@EliasMårtenson is N is a single scalar number, the thing you must do with A and B is the same
try (3 3⍴⍳9) ({⍺⍵}⍤1) 3 3⍴'abcdefghi'
 
@dzaima Right, but I can't figure out why I get a VALENCE ERROR when I do this: (2 3 4 ⍴ ⍳100) ({9+⍵}⍤1) 2 3 4 ⍴ ⍳100
 
@EliasMårtenson that should work
it works in dyalog, and given the weird message, it's probably a bug in gnu/apl
 
@dzaima Thanks. I'll post a bug report.
Oh wait, I know why it doesn't work. It's because GNU APL declares the function as monadic, and it's trying to call it with two argument.
 
9:19 AM
@EliasMårtenson yeah, just noticed that too. ¯\_(ツ)_/¯
({1⋄}⍤2) prints a cool message referencing c files. :D
 
Yeah, that deserves a bug report. It should be a proper error. GNU APL doesn't support ⋄ in inline functions.
 
9:47 AM
@RGS @Adám is there more to learn? :)
 
@xificurC There's always more to learn :-)
Did you learn about guards?
 
@Adám yeah, it was a pun. I meant if we finished the curriculum
@Adám no
 
@rak1507 Yesterday, Roger Hui said in public that if he can have one extension, it'd be that!
 
Oh cool
 
@xificurC OK, so you know dfns (that braced function style you've been writing) can have multiple statements, right?
 
9:51 AM
@Adám separated by , right
 
@xificurC ``
 
Another confusion about ⍤: If the number N is a vector as opposed to a number, what do the individual numbers of N mean?
 
@Adám quite stoked about 19.0 now :) When is it out?
Was happy to see in John's talk that it seems to work the same in MacOS for scripting as for the other platforms.
 
@xificurC Correct. Now, you can conditionally terminate a dfn with an expression by having condition:result
@xpqz Next summer, if all goes well. Perks of working at Dyalog:
 
:D
 
9:57 AM
What are the major changes in 19.0? (I missed a lot yesterday)
 
> Serial number: ⌊○1e5
 
o yeah
 
@EliasMårtenson dyalog docs give descriptions for each case
 
@rak1507 Mainly more solid support for scripting and code in text files.
@xificurC Now, can you define a function Fib that computes Fibonacci numbers recursively?
Oh, @RGS is here. Taking over?
 
RGS
I was actually logging in to see if xificurC wanted to learn some more when I noticed they pinged us. I don't mind you taking over, whatever you prefer.
 
10:05 AM
this gives a value error when called as fib 1 -> fib←{⍺≤1:⍺⋄(fib ⍺-1)+(fib ⍺-2)}
on the ⍺≤1 part, to be precise, although I'm sure you know the issue
ah, not ⍺
 
Right, a monadic function uses only
 
this seems to work fib←{⍵≤1:⍵⋄(fib ⍵-1)+(fib ⍵-2)}
 
@RGS You've already presented. I'm adding bells and whistles to mine, so you can take over here.
 
RGS
@xificurC Yup, that looks good to me
@xificurC are you familiar with tail recursion?
 
@RGS sure
 
RGS
10:11 AM
Ok, great. Dyalog APL has support for tail recursion as well. If we check the value of ⎕SI during a function call we can check how many things are in the execution stack, e.g.
⋄ fib←{⍵≤1:⍵ ⋄ ⎕←⎕SI ⋄ (fib ⍵-1)+(fib ⍵-2)} ⋄ fib 3
 
@RGS
Illegal code
VALUE ERROR
 
RGS
Hm maybe I can't access ⎕SI with the bot...
@xificurC maybe try running fib←{⍵≤1:⍵ ⋄ ⎕←≢⎕SI ⋄ (fib ⍵-1)+(fib ⍵-2)} ⋄ fib 5 in your machine.
(I changed the ⎕←⎕SI to ⎕←≢⎕SI` because ⎕SI contains the names of the functions in the execution stack and we only care about how many are in the stack)
Btw @all, why does ⎕ look so odd to the right of ≢? ≢⎕ ?
 
@RGS Looks fine to me:
 
what is ≢ again?
 
RGS
≢ is the length of a vector or, in general, the number of major cells of an array. ⋄ ≢'abcd'
 
10:17 AM
@RGS 4
 
ah, we had that yesterday, right
and why is ⎕←≢⎕SI printing? And what is this box glyph?
 
RGS
@Adám not to me
 
@RGS Screenshot or it didn't happen!
 
RGS
 
What's wrong with that?
 
10:19 AM
it printed some numbers, the stack depth I guess what you're after? But now it's printing it all the time
 
RGS
@xificurC Ok, so ⎕ is quad (APL + L) and you use it to access system functions, e.g. ⎕NGET to read a file, or the ⎕IO variable, or the ⎕SI variable
When used on its own, ⎕← is used for output and ←⎕ for evaluated input
@xificurC Because your new fib function prints them. It is just for you to see that, obviously, the stack grows as you go down the recursion.
Can you implement a recursive factorial as well, please?
@Adám The last quad is much wider than the first one...
 
@RGS you say "factorial as well" but we just did fibonacci
 
RGS
@xificurC "as well" was meant for the "recursive" part :P
i.e. can you implement the factorial? (recursive like the fib was, pls)
 
@RGS oh. \○/ You could inspect with Firefox to see what fonts it chose.
 
@RGS fact←{⍵≤1:⍺⋄(⍺×⍵)fact ⍵-1}. It's dyadic because I don't know if dfns has support for more args. Of course it could be wrapped factorial←{1 fact ⍵}
 
10:25 AM
btw you can use ∇ as a self-reference
 
thanks @rak1507
/me looks up keybinding
 
APL+g for "go-around"
 
these glyphs were picked with some mnemonic or other thought in mind?
 
RGS
@xificurC legend says the glyphs were thrown on top of a keyboard and then, what stuck, stuck
just kidding, no idea
 
@Adám I expected s for self or r for recurse
 
10:27 AM
@xificurC Yeah, is an upside-down which is a Greek D as in "Define".
 
@xificurC The glyphs were also chosen because of the way the original hardcopy terminals worked.
 
RGS
@xificurC nice you wrote it like this. You can make a dfn have a default left argument.
 
@Adám so.. g for greek? :p
 
RGS
is the left argument and a dfn can have a special assignment ⍺ ← ... that is executed iff the dfn was called monadically
So, how could you write your fact so you don't need to do 1 fact 10?
 
They didn' thave that many symbols available, so ⍤ was created by printing ∘, backspace ¨. And ⍞ was printed by ⎕ backspace ', etc.
 
10:29 AM
@RGS fact←{⍺←1⋄⍵≤1:⍺⋄(⍺×⍵)∇⍵-1}
 
RGS
@EliasMårtenson ah that makes so much sense!
@xificurC nice
 
Also, ⌹ is a combination of ⎕ and ÷
 
anyone know how to use turtle from the 'dfns' namespace?
 
RGS
and it is, in fact, tail recursive. You could check it by printing the ≢⎕SI in the recursive calls
 
You can see a lot of the APL symbols working like that.
 
RGS
10:30 AM
@Razetime have you tried feeding it?
 
clearly the best way to do factorial is ⎕CY 'dfns' ⋄ f ← {lisp '(((\(f)(\(x)(cond((=0x)1)(else(* x ((f f)(- x 1)))))))(\(f)(\(x)(cond((=0x)1)(else(* x ((f f)(- x 1))))))))',(⍕⍵),')'}
 
ah yes
 
RGS
@rak1507 I see you used your new string interpolation skills!
 
lol
 
RGS
@xificurC up for learning how to write your own operators?
 
10:32 AM
@RGS sure, although I have no idea what you're talking about :)
 
@xificurC Both the symbols and they keyboard locations where quite carefully chosen, though with the constraint of having to fit on a type ball.
@Razetime Did you look at the docs?
 
yes, I took an example directly from the docs and tried it
 
Hold on, it is Windows only.
 
oh lmao
 
RGS
@xificurC Remember using f⍨ to switch the order of the arguments to f? e.g. ⋄ 10 -⍨ 5
 
10:37 AM
@RGS ¯5
 
@RGS yes, ⍨ , mnemonics selfie, alt-shift-t for unknown reasons
 
@xificurC that one's rather clear - it contains ~ - Tilde. And it's also got ¨, so also shift.
 
@Adám do I run it on Wine then?
 
@Razetime I doubt it. But there's a presentation today that looks promising for making that stuff cross-platform.
 
 
10:40 AM
@dzaima (i wonder how many shift clicks i could've saved by rebinding to just alt+t as i don't use alt+t for ~)
 
RGS
Yeah @xificurC, exactly. We say ⍨ is an operator, because to its left it takes a function as "argument"
So it is a monadic operator. Operators can also be dyadic, i.e. take operands on the left and on the right
 
@RGS argument → operand (i'm guessing you wrote that for clarity, but you should also mention the correct term then)
 
RGS
@dzaima check the next msg
But maybe the note on the same msg would've been better ⍥
 
@RGS so / and \ are operators as well?
 
 
RGS
10:46 AM
@xificurC yes, sometimes :P
When you use it like +/ or ×/, then / is an operator
 
@RGS devil's advocate - could make it sound like "operand" only applied for dyadic ones
 
RGS
But if you recall, yesterday I also used / as the "compress" function. Remember that?
@dzaima yup, also true! Thanks for the feedback :D
 
@RGS, yes, ⋄ 1 0 2/⍳3
 
@xificurC 1 3 3
 
(I didn't remember fully, so I tried it locally first)
 
10:48 AM
@xificurC slashes (/\⌿⍀) in APL are known to be "schizophrenic". Really /\⌿⍀ are 8 built-ins (10 if you count monadic and dyadic cases as separate builtins) squeezed into 4 characters.
 
RGS
Great that you even mentioned /
Defining your own ops in APL is really simple. You can use the same syntax as for dfns (and hence you will be writing dops - direct operators) to enclose the body of the operator with {}
Then, inside {}, you use ⍺⍺ (double ⍺) to refer to the left operand (the left """argument""" of the operator) and use ⍵⍵ to refer to the right operand.
Question: which one of ⍺⍺ or ⍵⍵ is always present in operators?
 
@RGS ⍺⍺, but that's only for Dyalog as far as I know.
In GNU APL it's ⍹
 
RGS
@EliasMårtenson The question wasn't for you :P
 
I would've said ⍺⍺ too! I swear I swear! :p
 
I've never thought about it before, but I would have said ⍺⍺ too I think
 
10:53 AM
I'm sure this is the left operand mnemonic
 
RGS
@xificurC :) just notice that, for e.g., you type f⍨, so the operator ⍨ only has a left operand
so the operator sqr ← {⍺⍺ ⍺⍺ ⍵} takes a left operand and applies it twice to the argument
 
> source of vitamins A(PL) and K4
 
RGS
⋄ sqr ← {⍺⍺ ⍺⍺ ⍵} ⋄ ⍴sqr 3 2 5⍴⍳30
 
@RGS 3
 
RGS
@xificurC can you work out that example? (btw I should've called it _Sqr according to the conventions I follow)
 
10:57 AM
3 2 5⍴⍳30 builds a 3 by 2 by 5 array. ⍴sqr translates to ⍴⍴. The right ⍴ gives the shape 3 2 5 and the left is then ⍴3 2 5 → 3
 
RGS
@xificurC very nice
sooooo
Go ahead, and define a "filter" monadic operator. It should take a function as left operand, and what it does is, takes a right argument (⍵), applies the operand to it to create a boolean mask, and then returns only the elements for which the boolean mask is 1
Is ^ clear?
 
@xificurC you can now write your own operator that can sum all the numbers in a matrix with +yourOp 3 3⍴⍳9 :P
 
@RGS right
@RGS how can I turn a dyadic verb into a partially applied monadic one? (≤1)0 1 2 doesn't do what I expect it to do :)
 
RGS
You have to bind the argument to the function with ∘, APL + J for jot
 
@xificurC you could also write an operator to place between and 1 to do that
 
11:03 AM
@RGS filter←{(⍺⍺⍵)/⍵}
 
RGS
@xificurC nice :D
Teaching you is easy :P
 
@RGS thanks, you're not doing a bad job of teaching either ;)
 
RGS
ahaha thanks
 
is there a builtin for filtering? Or does one just always write it out inline
 
RGS
there is not
 
11:05 AM
@xificurC you usually write it out. (and here the schizophrenia of / gets really annoying as it prefers to be an operator to the compress function you want in some contexts)
 
what is the tacit form of (∘≤1)filter then?
 
RGS
Now of course we haven't covered all built-ins, but you have a basic overview of the language. Would you rather be solving some problems now, and get to know the primitives as we go along? Or have a look at some more primitives here?
You may also take a look at the APL Cultivation lessons
 
@xificurC a dyadic operator needs to be between the two operands to it
 
RGS
Those lessons took place in this chatroom and cover a lot of Dyalog APL
 
@dzaima was that an answer to my question? I'm not sure
 
11:08 AM
@xificurC that was a note about you writing (∘≤1) incorrectly. it should be (≤∘1)
 
@RGS I'd rather work through some problems. I'm here for the mind expansion, remember? :)
@dzaima how does one bind the left operand then?
 
@xificurC 1∘≤
 
interesting
 
@xificurC (≤∘1 {⍺/⍵} ⊢) works, but you may notice that useless dfn wrapper around /. Without it, (≤∘1 / ⊢) is interpreted as a ≤∘1-reduce of identity (equal to {{ifAlphaExists:error ⋄ ⍵≤1}/ ⍵}). There exists a slightly shorter working version of (≤∘1 ⊢⍤/ ⊢), but that introduces another operator.
 
RGS
@xificurC are maths-related problems fine?
 
11:14 AM
@RGS if I say no, will you have anything left? :p
sure, math is fine
@dzaima ah yes, the crying baby operator
 
@xificurC appropriate :D
, in the dyadic case, is just {⍺⍺ ⍺ ⍵⍵ ⍵}. And fwiw, is {⍺←⊢ ⋄ ⍺ ⍺⍺ ⍵⍵ ⍵}
 
I see there's also baby with pacifier, alt-shfit-p for pacifier mnemonic
 
p for power
 
@xificurC that's the repeat/"do until" dyadic operator, approximately the only other thing than recursion that can make APL turing complete
 
p for pause for when you accidentally do ⍣≡ on something that doesn't converge
 
11:18 AM
and ⍥?
 
Over.
 
@xificurC that's {(⍵⍵ ⍺) ⍺⍺ ⍵⍵ ⍵} in the dyadic case. e.g. 3 +⍥(*∘2) 4 for "sum of squares of both args"
 
Makes sense in Scandi: Över meaning Over
 
oh god there's 2 crying babies and I mistook them
@dzaima you used ⍤, I thought it's ⍥
 
RGS
@xificurC I will, but I'll have to outsource the problems ahaha
Ok, so can you find all the possible outcomes of rolling dice?
 
11:21 AM
@dzaima ah you already explained that, missed it
@RGS a 6-sided die?
 
RGS
@xificurC Sure, or maybe a -sided die :D
 
@dzaima how can you have ⍺⍺ and in one definition?
 
⍺ (⍺⍺ op ⍵⍵) ⍵
 
@xificurC why wouldn't you be able to? In my example of i gave it 2 operands and 2 arguments
 
@rak1507 oh, so a dfn can take 4 arguments
 
11:24 AM
@xificurC well, yeah. But then it's not really a function
 
and ⍺⍺ ⍺ ⍵⍵ ⍵ is still read as (⍺⍺ (⍺ (⍵⍵ ⍵)))?
it's hard to imagine the use case just by looking at the definition
 
@dzaima ah, note that my definition is only for the case when both operands are functions. It needs special cases when there are array operands
@xificurC ⍺⍺ (⍺ ⍵⍵ ⍵). Here operands are functions, so it parses the same as - 2 + 5
 
@RGS by find you mean actually list them or just count them
 
RGS
@xificurC counting them is too easy for you
Get me an array with all of them, please
(Come to think of it, it is much easier than it might look!)
 
I have a solution but it's not very good, I wonder if there's an easier way
 
RGS
11:30 AM
@rak1507 there is
 
@RGS i'm assuming you're using a specific sequence of 2 dyadic operators that xificurC might not know about?
 
@RGS to keep you entertained as well, how would you build a die that can only roll ⍳3?
 
RGS
@dzaima No! it is a dfn with {4 bytes}, no ops
 
4 bytes?!?!
 
RGS
@xificurC take a regular die, replace face n with 1+3|n
 
11:35 AM
Mine is 18 bytes
 
RGS
@rak1507 rolling a b is different from rolling b a
 
Yep, I have that
 
@RGS 4 bytes that we know? :)
 
Mine doesn't even work properly, I just realised
 
no crying babies please
 
RGS
11:36 AM
@xificurC no crying babies whatsoever :D but hey, you are not looking for the shortest solution
You are looking for a solution that works
 
@RGS ah, i may have been overcomplicating things. I also implicitly assumed that the results should be summed, but you're asking for an array of vectors of numbers 1…6
 
often the shortest one is the easiest to find! (telling that to code golfers, ha)
 
I have no idea how you can do it without outer product
 
RGS
I am not really a code golfer :P Almost all of the rep I have is for writing challenges, not for solving them ;)
btw xificurC, was my solution to your challenge good/correct?
 
Of the 4 characters in the dfn, 2 must be ⍺ & ⍵, so there a 2 left for somehow making an array of vectors. As a hint, the array of results needn't be a vector
 
11:40 AM
I have a 23 character recursive solution....
 
RGS
@dzaima +← 1
 
I am on 0 bytes so far
 
Oh, I have it now
 
RGS
@xificurC all the bytes you have used are in the correct place!
 
well [redacted] is certainly a lot simpler than {0=⍵:⊂⍬ ⋄ ∪,(⍳⍺)∘.,⍺∇⍵-1}
 
RGS
11:42 AM
@xificurC Have you had the pleasure of seeing in action when the input is a vector?
 
@RGS no, no pleasure yet
 
@RGS i too for some reason assumed it was already discussed
 
RGS
is iota and it stands for Index Generator, so it generates all the indices of an array with shape given as argument
that is why ⍳ 3 returns 1 2 3, because a vector of shape 3 has elements at indices 1, 2 and 3.
Now ⋄ ⍳ 3 3 is a bit more interesting:
 
@RGS
 1 1  1 2  1 3
 2 1  2 2  2 3
 3 1  3 2  3 3
 
RGS
a 3×3 matrix has 9 positions, accessed with the indices above ^
 
11:45 AM
oops
⋄⍴⍳3 3
 
@xificurC 3 3
 
RGS
Yup, (⊢≡⍴∘⍳) ⍵ is always 1
 
⋄(⍳ 3 3)[1][1]
 
@xificurC RANK ERROR
 
?
 
11:46 AM
@RGS well, except if is scalar
 
RGS
@xificurC You are looking for ⋄ (⍳ 3 3)[1; 1]
 
@RGS 1 1
 
RGS
@dzaima hm yes :P forgot that caveat
 
so it's a 3 by 3 array where each element is a list?
 
@xificurC yep. An array (in this case, a matrix) of vectors of numbers
 
RGS
11:49 AM
So with , and you have 3 of the 4 bytes needed. The remaining byte is a function you have used for the purpose you need in this 4-byte solution :)
 
@xificurC note that 'abcd'[2 3] extends to higher dimensions - ⋄ (⍳3 3)[1 2;1 3] (this also shows a caveat of (⍳3 3)[1;1] - the result is a rank 0 array containing the vector)
 
@dzaima
 1 1  1 3
 2 1  2 3
 
{⍳⍵/⍺}
 
RGS
Cool
I had {⍳⍵⍴⍺}
Now! Of those, find me the ones that sum up to n or more, please
 
I had {0=⍵:⊂⍬ ⋄ ∪,(⍳⍺)∘.,⍺∇⍵-1} lol
 
11:52 AM
I gotta run now, will be back later though. I'll post the answer once I get to it :) Thanks @RGS
 
RGS
○/
See you later @xificurC
 
@rak1507 my overcomplicated one was {⊃∘.,/⍺⍴⊂⍳⍵}
 
My first one was {∪{⍵[⍋⍵]}¨,∘.,⍣(⍵-1)⍨⍳⍺}
 
RGS
@xificurC for when you get back: in case you have a function that needs to get a lot of things as input, it is common to pack them into one of the arguments, say , and then unpack them in the beginning of the dfn: roll ← {(sides dice n) ← ⍵ ⋄ ⍳dice⍴sides} works as roll 6 3 0 to roll 3 die with 6 sides.
 
@rak1507 that sort and unique are entirely pointless and even make the solution wrong :P
other than that, {∘.,⍣(⍵-1)⍨⍳⍺} is also a valid solution
 
11:55 AM
Do they? It's to remove things like (1 2)(2 1)
 
@rak1507 well, that's possible. Noone said the dice have to be unordered
 
Fair enough
 
 
1 hour later…
1:01 PM
dyalog.com/uploads/files/student_competition/… question 5 from this is interesting, how would you do it? I have a solution that returns ⊂stuff, and I can't figure out how to unenclose in a train
 
@rak1507 ?
Announcement: Second day of Dyalog ’20 begins in an hour. It is free, but you must register.
 
I have f/train, so ⊃f/train is interpreted differently
 
@rak1507 Right, you'd need (⊃f/) or ⊃(f/train) or ⊃f/∘train if possible.
 
That works
I'd be interested in seeing the 'best' (most idiomatic) solution, and the shortest
the solution I have at the moment is 11
It uses something a bit weird, and I'm not even convinced it works all the time
 
@rak1507 Btw, this may interest you.
 
1:07 PM
Oh yeah, I forgot about that
What version does that use?
Did you mean to link specifically to the standard deviation question or the site in general?
 
@rak1507 Version of…?
 
Dyalog
 
@rak1507 Isn't that the problem you're discussing?
 
No, 2016 question 5
 
Oh, my bad.
@rak1507 17.1, per the front page (it is TIO)
 
1:10 PM
Right
Oh, unique mask is 18.0+ right
 
@rak1507 I've got 11 too, but no f/ in mine.
 
Does it work with version 17?
 
Yup.
 
Does it use ∘.=⍨?
 
No.
 
1:24 PM
I give up, mine was ⊃(~/≠⊢∘⊂⌸⊢)
 
@rak1507 ∪(⌿⍨)1=⊢∘≢⌸
 
Ah, ⊢∘≢, clever
I don't know why I was using dyadic ⌸ when monadic makes more sense
Oh well
 
1:46 PM
I assume +.× didn't exist in 2016? Seeing as that's the solution to problem 10
+/× must have existed though, seems a bit weird to have a problem 10 with such easy solutions
 
1:56 PM
@rak1507 +.× has existed since day 1 of APL, over half a century ago.
@rak1507 We didn't sort them by increasing difficulty back then.
 
Ah, makes sense
 
User meeting day 2 has begun!
 
yay
why isn't 32.65 rounding to 32.7?
 
@RGS first solution: ⋄nrolls←{(die rolls)←⍵⋄r←,⍳rolls/die⋄((4∘{(+/⍵)≥⍺})¨r)/r} ⋄ 4 nrolls 4 2
 
@xificurC 1 3 1 4 2 2 2 3 2 4 3 1 3 2 3 3 3 4 4 1 4 2 4 3 4 4
 
2:06 PM
the (4∘{(+/⍵)≥⍺}) is particularly ugly :)
and 4 should be ⍺
 
@xificurC You can use instead to avoid the parens.
 
@Adám you mean (4∘{⍺≤+/⍵})?
 
Yeah.
 
@Adám nice, although it's like putting lipstick on frankenstein's monster
 
@xificurC (4∘{(+/⍵)≥⍺})¨4{⍺≤+/⍵}¨
And you can use r/⍨ too.
 
2:13 PM
that makes it nrolls←{(die rolls)←⍵⋄r←,⍳rolls/die⋄r/⍨⍺{⍺≤+/⍵}¨r}
 
@Razetime Related.
 
got rid of the inner dfn nrolls←{(die rolls)←⍵⋄r←,⍳rolls/die⋄r/⍨⍺≤+/¨r}
 
@Adám woah whats going on there
 
@xificurC {r←,⍳⊃⊢⍤/⍨/⍵⋄r/⍨⍺≤+/¨r} or even {r/⍨⍺≤+/¨r←,⍳⊃⊢⍤/⍨/⍵}
@Razetime Dyadic
 
What's that function doing
 
RGS
2:18 PM
@Bubbler featured at the '20 user meeting
 
Yeah
 
@rak1507 Which one?
 
RGS
@xificurC will have a look ASAP
 
{r/⍨⍺≤+/¨r←,⍳⊃⊢⍤/⍨/⍵}
 
No idea.
 
2:19 PM
I can't be bothered figuring out what it's doing, would rather redo it from scratch
 
@rak1507 which one, mine?
 
Nah, xificurC's
 
@rak1507 that bad huh :D
@Adám what is ⊃? I haven't grokked the usage of the crying baby either, yet
 
⊃ takes first element
 
@xificurC Monadic is "first". Extracts the first (here: only) element.
 
2:21 PM
dyadic ⊃ takes the nth element
@Adám lotta recursion in here
 
@Razetime Did you mean to reply to "Related"?
 
yep
Just realized the question asks us to round integers as well :/
 
∇∇ means "this operator" just like means "this function".
 
huh.
 
How come ×{⍵=0: 1 ⋄ ⍵ ⍺⍺ ∇⍵-1} 10 works but ×{⍵=0: 1 ⋄ ⍵ ⍺⍺∇∇⍵-1} 10 doesn't?
 
2:27 PM
@rak1507 ∇∇ is an operator, meaning this operator
 
@rak1507 Inside an operator means ⍺⍺∇∇ or ⍺⍺∇⍵⍵ depending on operator valence.
@EliasMårtenson Fixed in next build.
 
3:28 PM
Is there a keyboard shortcut for closing the )ed window? Having to use my mouse is annoying
 
/me remembers the del (∇) line editor...
 
@rak1507 Esc if you want to save changes, Shift+Esc if you want to discard them. You can change these though.
 
Great, thanks
Learning to actually use the editor will definitely be worth it I think
 
 
3 hours later…
6:07 PM
@juanez Welcome. Interested in APL?
 
6:45 PM
Looking at dyalog.com/uploads/files/student_competition/…, I assume you can't use LCM for the GCD problem haha
 
@rak1507 Yes, but that already takes a bit of understanding
 
Yeah I know
 
RGS
ah ok :P
 
Not as easy as ×÷∧ though
 
RGS
True.
 
05:00 - 20:0021:00 - 00:00

« first day (1385 days earlier)      last day (1262 days later) »