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

ngn
5:22 AM
The "Weaver" challenge looks like it has potential for being won in APL with Amend (@).
 
6:11 AM
@ngn "At".
 
ngn
@Adám is that its official name?
 
@ngn Yes‌​.
 
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 PM
@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
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
@EriktheOutgolfer of course, nobody's told any yet :) <- empty array joke
@Adám why Roman?
 
12:14 PM
@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
@Adám :D thumb up
 
@EriktheOutgolfer Yes, Dyalog APL is different from all other APLs in that regard.
@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 PM
@ngn I guess that has to do with versioning of vintage APL variants
 
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 PM
@EriktheOutgolfer Not because I just told you?
 
@Adám well, I had actually tried before...
 
1:14 PM
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
.oO( any loop can be replaced with a reduce, if you're ngn enough )
 
@Ven (no nested arrays)
 
1:16 PM
@Ven APL\360 did not support reductions with user defined functions.
 
and I think that reductions are a form of looping anyway
 
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
@Adám can we use ,\ ?
 
@ngn APL\360 doesn't have that...
 
ngn
1:28 PM
@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
@EriktheOutgolfer a very roundabout way: (,(⍳N)∘.≥⍳N)/,N N⍴⍳N
 
@ngn sorry, but that's Dyalog, not APL\360 :P
 
ngn
@EriktheOutgolfer This is basic APL stuff. Maybe stranding was missing? N N -> (N,N)
 
@ngn ah, thought that was a train...
 
1:45 PM
@ngn Nicely done!
 
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
 
1:52 PM
@EriktheOutgolfer @ngn Now do ∊⍳¨N
 
ngn
@Adám N is a vector?
 
@Adám ⍳N
 
@ngn Yes.
 
huh, N is apparently a vector
(yes, I saw that coming...)
 
ngn
@Adám do we have A~B ?
 
1:58 PM
@ngn Nope, but you can easily write that.
 
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
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
2:08 PM
the stone age of APL...
 
@Adám @ngn now do ∪V for a vector V
 
ngn
@EriktheOutgolfer (∨⌿<\∨\V∘.=V)/V
 
@EriktheOutgolfer ((V⍳V)=⍳⍴V)/V
 
@Adám did you copy-paste that comment from SO? :P nice
 
ngn
@Adám wait... it had dyadic iota?
 
2:21 PM
@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…
4:41 PM
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.
 
5:08 PM
@Adám uh, doesn't \ exist in APL\360? and you can't make tradops and dops, right?
 
 
2 hours later…
7:15 PM
@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?
 
@Pavel A user defined operator using the {} style.
 
7:21 PM
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…
8:41 PM
@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
 
8:50 PM
wow cool
Of course, , is applied several times
I get it now
 
9:01 PM
@DevelopingDeveloper Welcome. Interested in learning APL?
 
 
1 hour later…
10:17 PM
@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?
 
11:00 PM
@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 (2204 days later) »