« first day (453 days earlier)      last day (2498 days later) » 

ngn
ngn
05:22
The "Weaver" challenge looks like it has potential for being won in APL with Amend (@).
06:11
@ngn "At".
ngn
ngn
@Adám is that its official name?
@ngn Yes‌​.
ngn
ngn
@Adám I'm so close to beating Jelly...
@Adám uh, "Authentication Required"
@ngn Sorry, change that 7 to a 6.
 
6 hours later…
12:10
@Adám ah, while APL\360 has limited support for arrays, it looks like '' serves as the (1-dimensional) empty array for both numbers and characters
@EriktheOutgolfer No, '' is the empty character array. Zilde () was added later for convenience. You had to use (0⍴0).
ngn
ngn
empty array jokes starting in 3... 2... 1...
@ngn it's not very funny...
@EriktheOutgolfer But, you were allowed to catenate empty arrays of different prototypes.
@ngn More like: Empty array jokes starting in IV, III, II, I,
ngn
ngn
@EriktheOutgolfer of course, nobody's told any yet :) <- empty array joke
@Adám why Roman?
12:14
@Adám and it looks like the right argument's prototype is used for the result
@ngn — That's outrageous! Down on the corner, they are only $3 each. — So why don't you buy there? — They're sold out. — Madam, when we're sold out, they're only $2 each!
@Adám marketing against APLers 101
ngn
ngn
@Adám :D thumb up
@EriktheOutgolfer Yes, Dyalog APL is different from all other APLs in that regard.
@ngn !
ngn
ngn
@Adám well, yeah... I had a distorted understanding of APL arrays at the time. Too hard to fix without a rewrite.
12:18
@ngn I guess that has to do with versioning of vintage APL variants
ngn
ngn
@EriktheOutgolfer hm... or the lack of 0 in Roman numerals
@EriktheOutgolfer This may have your interest.
> one vendor chooses the left, and all the others the right
hm, maybe Dyadic Systems?
@EriktheOutgolfer How did you guess?
@Adám well, because that's what exhibits such behavior
12:23
@EriktheOutgolfer Not because I just told you?
@Adám well, I had actually tried before...
13:14
18 hours ago, by Adám
@EriktheOutgolfer Programmers had to be clever instead. Here is a challenge for you: Given N, return ∊⍳¨⍳N.
@Adám done:
      ∇R←II N;I
[1]   I←⍳N
[2]   R←0⍴0
[3]   R←I,R
[4]   I←¯1↓I
[5]   →3×1≤⍴I∇
      R N
@EriktheOutgolfer Yuck, no stinking loops!
@EriktheOutgolfer I mean, good job.
@Adám hehehe
well, unfortunately that's the 60s :P
@EriktheOutgolfer No, you're supposed to solve it without using any looping.
Ven
Ven
.oO( any loop can be replaced with a reduce, if you're ngn enough )
@Ven (no nested arrays)
13:16
@Ven APL\360 did not support reductions with user defined functions.
and I think that reductions are a form of looping anyway
ngn
ngn
@EriktheOutgolfer in that spirit + is a form of looping too
@ngn hm, I'm not sure what Adám means by "no looping", since I doubt it would be possible without /
ngn
ngn
@Adám can we use ,\ ?
@ngn APL\360 doesn't have that...
ngn
ngn
13:28
@EriktheOutgolfer huh... what about ∘.< ?
@ngn yes it does have that
< is a scalar function
however, ,\ would obviously result in a nested array, which is just too much for ye olde APL\360
ngn
ngn
@EriktheOutgolfer a very roundabout way: (,(⍳N)∘.≥⍳N)/,N N⍴⍳N
@ngn sorry, but that's Dyalog, not APL\360 :P
ngn
ngn
@EriktheOutgolfer This is basic APL stuff. Maybe stranding was missing? N N -> (N,N)
@ngn ah, thought that was a train...
13:45
@ngn Nicely done!
ngn
ngn
@Adám I'm sure there must be a shorter way
@ngn Not .
@Adám uh...except that / does not exist as a function in APL\360
@EriktheOutgolfer Doesn't the expression work? It was an operator which took a Boolean array as operand.
@Adám oh it was‽ I thought it didn't exist at all, that's why I used filthy → there
13:52
@EriktheOutgolfer @ngn Now do ∊⍳¨N
ngn
ngn
@Adám N is a vector?
@ngn Yes.
huh, N is apparently a vector
(yes, I saw that coming...)
ngn
ngn
@Adám do we have A~B ?
13:58
@ngn Nope, but you can easily write that.
ngn
ngn
oh, this is so ugly I shouldn't even post it
(,N∘.≥⍳⌈/N)/,((⍴N),⌈/N)⍴⍳⌈/N
@ngn lol just make a tradfn and use local variables
ngn
ngn
if that's better:
M←⌈/N
(,N∘.≥⍳M)/,((⍴N),M)⍴⍳M
@ngn you can also assign in-place, but I like doing things more orderly :)
(because that totally wasn't my approach)
@ngn Precisely! Your solution is identical to the "official" answer.
ngn
ngn
14:08
the stone age of APL...
@Adám @ngn now do ∪V for a vector V
ngn
ngn
@EriktheOutgolfer (∨⌿<\∨\V∘.=V)/V
@EriktheOutgolfer ((V⍳V)=⍳⍴V)/V
@Adám did you copy-paste that comment from SO? :P nice
ngn
ngn
@Adám wait... it had dyadic iota?
14:21
@EriktheOutgolfer It is a classic idiom.
@ngn Yes, that's original.
@EriktheOutgolfer I think all the FinnAPL idioms work on APL\360. (Though you have to be explicit about ⎕IO. System functions were not invented yet.)
@Adám @ngn next task: X∩Y for two vectors X and Y (and no, doesn't exist in APL\360)
@EriktheOutgolfer (X∊Y)/X
@Adám hm, looks like you realized that quickly
@EriktheOutgolfer I grew up with APL*PLUS/PC which was not much more than APL\360. The "PLUS" was system functions and / and \ could take positive integers, not just Booleans. I think that was basically it.
 
2 hours later…
16:41
Just a reminder that Dyalog servers will be down for maintenance tomorrow starting at 9am UTC. We expect this to last approximately 4 hours during which time our website and other external services will be unavailable.
17:08
@Adám uh, doesn't \ exist in APL\360? and you can't make tradops and dops, right?
 
2 hours later…
19:15
@EriktheOutgolfer \ exists, but only as scan with scalar functions and as expand with Boolean left operand.
@EriktheOutgolfer No user defined operators, and no d-anything.
@Adám What's the d-anythings?
@Adám but I tried +\1 2 3 (with Shift+/, not the \ key directly) and it didn't work
@Pavel dops and dfns.
What's a dop?
19:21
Ah
@EriktheOutgolfer That should work.
@Adám but it's a syntax error
      -?1 2 3
      syntax error
      -? 1 2 3
      )
  +\1 2 3
  SYNTAX ERROR
  +\ 1 2 3
  ^
more like that really
 
1 hour later…
20:41
@EriktheOutgolfer Right, Morten seems to recall Scan being a later addition, and indeed, I can't find it in the reference manual.
If I want to do (⍳≢⍵) with scan, is that (≢¨,\⍵)? Can I compose ≢ and , somehow?
@FrownyFrog No, because the , is what creates the prefixes and only when the entire prefix is ready are you ready measure its length.
@FrownyFrog Can you use +\=⍨ instead?
⍞←+/=⍨'abcde'
@Adám 5
⍞←+\=⍨'abcde'
@Adám 1 2 3 4 5
20:50
wow cool
Of course, , is applied several times
I get it now
21:01
@DevelopingDeveloper Welcome. Interested in learning APL?
 
1 hour later…
22:17
@Adám Hey @Adám I am! I have tried to sign-up for your classes a few times and got stuck with a meeting at work during that time and was unable to make it. Do you have any upcoming classes scheduled? I seem to have lost the link which I found to see the class schedule times
@DevelopingDeveloper You don't need to sign up, but if you want reminders, then you can. When a class is scheduled, the sign up page is here. You can read transcripts of past classes here. I usually have classes every Wednesday at 17:30 UTC, but after almost 40 hours of lessons, I've run low on stuff to teach. Any ideas?
@Adám Awesome, thank you for sending me this. Let me look through some of the transcripts and see what I can pick up from those and go from there
@DevelopingDeveloper Feel free to ask anything anytime. Do you have an APL interpreter installed?
23:00
@Adám No sir I do not, the small amount of APL I have done has been using TIO
@DevelopingDeveloper OK, while I recommend getting a free personal license you can also use TryAPL for an interactive session (REPL) more akin to the offline experience, or use the chat bot here for single stand-alone lines:
⎕←⍳2 3
@Adám
┌───┬───┬───┐
│1 1│1 2│1 3│
├───┼───┼───┤
│2 1│2 2│2 3│
└───┴───┴───┘

« first day (453 days earlier)      last day (2498 days later) »