« first day (1562 days earlier)      last day (1100 days later) » 

7:14 AM
@Adám Interesting! Is this from a development version of 19.0?
 
No, it has been like this since "forever".
More fun with functions as first-class objects:
      Minus←- ⋄ Reci←÷ ⋄ Sign←×
      fnVec←⎕OR¨⎕NL-3
      fnVec
 -  ÷  ×
      args←10 ¯5 2
      Apply←{⍵{⍺⍺⍵}⍺}
      args ∘.Apply fnVec
¯10  0.1  1
  5 ¯0.2 ¯1
 ¯2  0.5  1
 
@Adám weird, I seem to remember lots of kvetching about the lack of first class functions in APL..
(btw, I for one am quite happy with the reduction of off-topic/anti-APL chatter in this room)
 
@ab5tract Well, the functions themselves aren't first-class, but their Object Representations are. The method of applying objectified functions is obscure, and the whole thing is awkward to use. But can it be done? Yes.
@ab5tract Thank you for the support.
 
so this is a Dyalog-only thing, related to the .Net integration/OO stuffs?
 
It is certainly Dyalog-only, but afaict it is unrelated to .NET and OO.
"object" here is not an object in the OO sense. Not a namespace.
It is basically an arrayified non-array memory pocket (i.e. a RAM dump).
Internally, there's a flag to indicate whether a pocket represents an array or not. ⎕OR simply flips that bit on.
 
7:24 AM
@Adám ah, ok.. I read Object Representation and imagined it was whatever "wrapping" got added around the functions when they became usable from other .Net languages
gotcha :)
@Adám You are most welcome! I have to admit a general distaste for the kind of holier-than-thou attitudes that tend to crop up amongst talented golf hackers. It makes asking questions less comfortable all around because the general arrogance level of the atmosphere is really high
It also gets really tiring to read how ignorant younger programmers are to past constraints (you know, such as being one of the very first programming languages ever designed.. that's only conceptual/cultural constraint, let alone technical!)
hubris is one of the programmer's virtues, but it must be tempered with the other virtue of humility
 
@ab5tract I think it is a general problem with those ignorant of history/taking today for granted.
I was blessed with a father much older than me, who could imbue in me a sense of what the world was like before.
Imagine not having plastics (thought experiement: all thermoplastics and polycarbonates suddently disappear…) and sharing a phone line with two other families (never mind having to book out-of-town calls in advance).
@ab5tract One thing I was told when I joined Dyalog was: Write your code as if it will be read by a violent psychopath that knows where you live.
 
7:59 AM
@Adám This is a very common refrain amongst Perl programmers too. Useful to keep in mind lest one get too clever for one's own (or the code's) good
That exact phrasing "a violent psychopath that knows where you live" was the second-most common idiomatic developer wisdom at Booking.com when I first joined in 2012
The other was, "if you haven't broken prod yet, you might not be working hard enough"
 
Every new dev at Dyalog eventually breaks the overnight builds.
 
@Adám I haven't been in a position to apply yet (too many balls in the air in $life atm) but reading the job description page it really felt like the dev position was written for my mindset personally
 
@ab5tract What language(s)/tech(s) do you work with/in?
 
Which was one of the biggest frustrations about the constant APL bashing.. I joined this community specifically because I am compelled by the rich, almost "alternative" history of computing that APL reoresents
@Adám At Booking.com I was using Perl extensively/exclusively until I switched to Java to help work on our SIEM
 
Perl to Java sounds like a sharp turn :P
 
8:07 AM
Historically, picking up languages and learning to use them idomatically has been one of my strongest capabilities. One a less extreme scale, it plays out similarly on a framework/library/problem domain level (that is, I'm a quick study)
 
Cool
 
@ab5tract So you'd switch to C if you were to join Dyalog? ― Or were you planning on working on a Java bridge/Android port?
 
From a personal standpoint, I usually use Raku for any general scripting I need because it has literally every programming paradigm all glued into a cohesive whole. This allows me to approach the task in whatever way I'm feeling like that day.
@Adám I was looking at the APL position, but maybe this has closed?
I would definitely switch to C if it meant learning from programming elders
 
@ab5tract Oh, sorry, I didn't bother to look at the page. Internally at Dyalog, we call the C people "dev(t)" and the APL people "tools".
 
It turns out that Perl refs are more or less used how pointers are, so i have that conceptual foundation. C was my first language but as soon as I found Perl I could not be bothered with C's string processing "capabilities"
@Bubbler oh man, it wasn't entirely pleasant... That said, I get to "learn" Java at versions that allow me to do something like the functional list processing (map/grep), Though the modern "Java" is so heavily bootstrapped with metaprogramming/pre-compiler tools like Spring that it is sometimes hard to pick apart what layer of the cake I'm really studying
@Bubbler If I had stayed in Core Infra as an SRE instead of switching to security, I might have gone from Perl to Go. Honestly, though it is sexier from a resumer/payscale PoV, I'm not sure that I would have enjoyed that transition either.
That said, it was the awkwardness/frustrations of Java that led me to find APL/array programming "in its own right" (I had heard of them but never understood the utility). It all came from trying to find some form of distributed search/time series not based on Lucene/Elastic Search and coming up entirely short until I found Kx
If it were up to me, we would be using kdb+ for sure. But once I saw how powerful K was, it was only a matter of time until my love of typography, symbolic thought, and secret occult sigils led me to study APL :)
 
 
2 hours later…
9:59 AM
@ab5tract I don't think being anti-anti-APL is much better than being anti-APL. (and of course, everyone's gonna be happy with their opposition leaving; it's just not a healthy way to do things)
(and to this day i have no clue what's meant to be achieved by saying "but X was awesome in the past!" except if you're talking to a histologist or something. Like, yeah, APL was awesome for its time, but so were many, many, many things. This line of thinking is literally prohibiting innovation)
 
 
1 hour later…
11:33 AM
Proposed APL2 logos:
 
12:05 PM
@ab5tract There was a problem in that this room was described as something for all array languages, to the point of suppressing alternatives that would really treat them as equally valid topics. In practice it's now a Dyalog support forum. Which is fine, but a lot narrower.
 
@Marshall Not sure what you mean by "suppressing alternatives that would really treat them as equally valid topics".
@Marshall No, it really isn't a Dyalog support forum. Discussions of KAP design, and dzaima/APL support questions are requent too. As are discussions about J and comparisons between APL-like languages.
 
@Adám They are pretty rare though. You will notice the KAP questions are framed as "explain to me what Dyalog does".
 
@ab5tract 'ignorant' is a bit harsh. If anything, older programmers are ignorant to present and future constraints.
 
@rak1507 … and trends, and best practices, and tools.
 
12:20 PM
^
 
I don't think it's entirely about age. Most APL programmers left it eventually for various reasons. The remaining community has a lot of people who just shut themselves off to new things, because those people were much more likely to stay.
 
1:01 PM
@Adám Is that just a magical property of a dop that the left (or any?) operand can be the object representation of a function rather than a function? Is that a documented feature?
 
@PaulMansour It wasn't intentionally added so it's more of an implementation quirk. The representation of an OR is basically just a function with a bit set; in some contexts the interpreter doesn't distinguish it from a function.
 
@Marshall Cool, thanks.
 
 
1 hour later…
2:28 PM
Announcement: BAA open session at zoom.us/j/858532665 in 30 minutes. Passcode ← ×/1920 12 17
 
thanks for the reminder
 
3:08 PM
0
Q: Assign singleton vector value to a single not yet defined variable in Dyalog APL

OlexaDyalog APL allows assigning a vector of multiple values to a corresponding number of multiple not yet defined variables: x y←1 2 ]display x 1 ]display y 2 How to assign a single value from a single-element vector to a single not yet defined variable? What I tried: (...

 
 
3 hours later…
6:16 PM
is there a way to display a train with trees/boxes in J?
 
don't have J installed locally, is that possible on TIO?
 
6:54 PM
Dunno. Maybe ask on SO?
 
 
1 hour later…
8:23 PM
@rak1507 Representation foreigns should do it.
 
thanks
 

« first day (1562 days earlier)      last day (1100 days later) »