« first day (328 days earlier)      last day (2316 days later) » 

12:22 AM
Why did you spam test messages to Dyalog APL?
 
@Zacharý huh?
 
@Zacharý What?
 
1:23 AM
What was the purpose of the long sequence of Dyalog code that you typed.
 
@Zacharý Where?
 
@Zacharý methinks reconfiguration
 
@Uriel Don't know if that's what Z is referring to, but that was so indeed, as the bot suffers from amnesia.
 
1:59 AM
@Adám How so?
 
@Zacharý It doesn't quite load everything from its configuration files when rebooting.
 
Oh
 
 
10 hours later…
12:03 PM
@Adám I read some of that transcript and -despite not understanding half of it- found it fascinating. Happy Chanukkah, for what it's worth coming from a non-jewish person :p
 
@J.Sallé Cool. I'll be happy to explain anything (over there) if you want.
 
@Adám Nah, I'm good, thanks. I'm not really a religious person, I find it fascinating from the historical point of view. Got that from mum, I guess :p
 
 
2 hours later…
2:00 PM
Dyalog invite you to join our live webinar Thursday 11 January at 16:00 UTC. Microservices in Dyalog APL - where Morten Kromberg will demonstrate how easy it has become to deploy an APL application as a service – both on internal servers and on the cloud https://dyalog.tv/Webinar
 
 
4 hours later…
6:22 PM
@Cowsquack Hej, it has been a while.
 
Hi
I was occupied with (homework@tests)^:_ (a small J pun)
speaking of which, I have been learning J for a couple of weeks
 
6:42 PM
@Cowsquack heh, you don't need parens.
@Cowsquack How do you find J compared to APL. Feature-set, UI, language, readability, writeability?
 
oh right, I'm still getting used to removing unnecessary parens
writeability and readability: APL definitely is better, the single byte operators/functions makes a huge difference over the weird multibyte ones J has. Also the glyphs are easier to read than obscure ASCII characters that make little sense
also J's GUI functions work even on mac, whilst Dyalog APL's only work on windows (but I believe v16 changes that). J has a decent toolset for visualising data, like viewmat, one that I particularly fancy, but I am not aware of anything similar for APL
you can have J programs as scripts, and the command-line interface suits my taste. But Dyalog APL wins in the GUI interface
J is also much more terse, has many more builtins, one that gives J an advantage (IMO) is the q: function, for which there is no alternative in APL
 
the most important difference is that J is open-source while Dyalog is commercial
 
that too
it would be an interesting turnover to see Dyalog APL open-sourcing their product
 
@EriktheOutgolfer Why is that the most important difference?
@Cowsquack On this I agree very much, and that is probably the biggest difference for me.
 
Most important difference: ASCII
 
6:58 PM
@Cowsquack Dyalog APL has SharpPlot and ]chart and yes, now HTMLRenderer.
@Cowsquack dfns's pco?
@Zacharý Is that a plus on APL's side or on J's side?
 
Either.
My most important difference is I can't win $850 coding J :p
 
@Adám does APL have something like J's x for numbers? For example, I can do q:1-~2^128x in J, but I get a "nonce error" in APL doing 3 pco ¯1+2*128
 
@Adám you buy one but download the other
 
@Cowsquack You can do ⎕FR ⎕PP←1287 34, but it does't give quite that much precision:
⎕←2*128⊣⎕FR ⎕PP←1287 34
 
@Adám
3.402823669E38
 
7:14 PM
@DyalogAPL Hm. Odd.
 
@Adám I tried ×=:* but J gave a spelling error D:
 
⎕←2*128 ⋄ ⎕FR ⎕PP←1287 34 ⋄ ⎕←2*128
 
@Adám
3.402823669E38
3.402823669E38
 
Why ⎕PP←34?
 
because that's the upper bound
⎕←⎕FR⎕PP←1287 34⋄2*128
 
7:15 PM
@Zacharý Print with 34 significant digits of Precision.
 
@EriktheOutgolfer
1287 34
 
One thing I hate: when programming languages call things like natural languages do. cough Perl and J cough
 
⎕←⎕FR⎕PP←1287 34⋄⎕←2*128
 
@EriktheOutgolfer
1287 34
3.402823669E38
 
I know, but why so many? And it can't even DISPLAY that many!
 
7:16 PM
Odd, it works on Try it online!
 
@Zacharý I don't understand your statement
 
#tio alias view
 
I don't think it works on my RIDE
 
@EriktheOutgolfer
Command Aliases:
⍞← -> #TIO do apl-dyalog ⎕TRAP←(0 1000)'E' '''ERROR: Use ⎕← for a full error report'''⋄⎕←%args%
⎕← -> #TIO run apl-dyalog (⎕NS⍬).⍎'⎕CY''salt''⋄⎕SE.UCMD''box on -fns=on -trains=tree''⊣enableSALT'⋄⎕←%args%

Language Aliases:
apl-dyalog -> [apl]

Message Aliases:
)help -> %handle% [Dyalog APL Language Elements](help.dyalog.com/16.0/Content/Language/Introduction/…)
)ref -> %handle% [Dyalog APL Reference Card](docs.dyalog.com/16.0/ReferenceCard.pdf)
 
7:16 PM
what are "things"?
 
@DyalogAPL hm, maybe that's where the error is
 
functions as verbs, and stuff like that.
 
@Zacharý are you using Dyalog 16.0?
      ⎕←2*128⊣⎕FR ⎕PP←1287 34

3.402823669209384634633746074317682E38
 
Yes.
 
@EriktheOutgolfer

Rebuilding user command cache... done
Was OFF -trains=box -fns=off
⍎LENGTH ERROR
 __field_initialize_result_←(⎕NS ⍬).⍎'⎕CY''salt''⋄⎕SE.UCMD''box on -fns=on -trains=tree''⊣enableSALT' ⋄ ⎕←2*128⊣⎕FR ⎕PP←1287 34 3.402823669209385E38
                                                                                                            ∧

Real time: 1.199 s
User time: 1.067 s
Sys. time: 0.044 s
CPU share: 92.67 %
Exit code: 0
 
7:18 PM
@DyalogAPL hey, not now!
 
@DyalogAPL Cute.
 
Test: ⎕←2
> ⎕←2
⎕←2
 
@Zacharý
2
 
@Zacharý Huh, how...?
 
it seems like it ignores leading spaces
that's not good
 
7:18 PM
⎕←⍳2 3
 
@Adám
┌───┬───┬───┐
│1 1│1 2│1 3│
├───┼───┼───┤
│2 1│2 2│2 3│
└───┴───┴───┘
 
@Adám I emailed upgrade16@ a while back for upgrading to 16 but I didn't get a reply
 
Yeeah, it ignores leading spaces
 
@Cowsquack Is that a real email address? I'd email sales@.
@EriktheOutgolfer Oh, yes it is good. Then we can have monospace input!
 
I got an email telling me to email to upgrade16 to upgrade my version
 
7:20 PM
@EriktheOutgolfer Leading spaces never matter in APL.
 
Which is how I golf my programs, I also don't use an IDE (the first IDE I actually used is RIDE)
 
IDE is only for Windows IIRC
 
@EriktheOutgolfer I don't think so, the majority are only for windows however
 
RIDE is multiplatform
 
I'm talking about ever, I've never used an IDE on any platform, any language, until RIDE. (Only so I don't have to go through the GNU APL keyboard)
 
7:23 PM
GNU what? that's based on Dyalog APL keyboard
 
I previously used the Dyalog-Keyboard embedded within GNU APL for typing the symbols.
 
GNU APL and Dyalog APL aren't the same thing, the latter makes sense
4
 
I was using the keyboard, but I modified some of the bindings so I typed the dyalog versions of the symbols. And to the above, I totally agree, and ngn pretty much can be used instead of GNU for many reasons, except tradfns and index origin 1.
 
AFAIK, most Linux distros come with a Dyalog APL keyboard layout.
 
ngn ⊂ Dyalog
~GNU APL ∊ APL variants
 
7:29 PM
@EriktheOutgolfer No, ngn ∩ Dyalog
@EriktheOutgolfer I think GNU APL ⊂ ISO APL.
 
ngn APL has implemented some things outside of dyalog: ⍠⍶⍹∞⍫↗⍁
 
⍠⍶⍹ are in Dyalog too
 
is VERY different in ngn and dyalog.
 
@EriktheOutgolfer means something else, and and must be written as ⍺⍺ and ⍵⍵.
@Zacharý is basically ⎕SIGNAL, afaict.
 
@Adám I don't think that makes ⍶⍹ unique?
 
7:35 PM
⍺⍺ is parsed as ⍺ ⍺ in GNU, and I think ⍺⍺ is the same in ngn (I don't remember that one)
 
well, ⍶ and ⍹ actually do have a benefit
 
@EriktheOutgolfer I'm not sure what you mean.
 
⍺⍺⍺ vs. ⍺⍶
the first isn't correct
 
APL is not (designed to be) a golfing language! Both and ⍺⍺ work in ngn I think.
 
7:37 PM
Yes to which sentence?
 
both?
@Adám actually no, takes a string
 
@EriktheOutgolfer The first currently parses as ⍺⍺ ⍺ but that is really abuse. If we ever introduce hyperators, ⍺⍺⍺ will be the left hyperand.
@EriktheOutgolfer So does ⎕SIGNAL.
 
      ⎕SIGNAL'abc'
DOMAIN ERROR
      ⎕SIGNAL'abc'
     ∧
 
How will hyperoperators work? And is there a proposal for hyper-hyper-operators and so on?
 
that should throw abc, like does in ngn
 
7:39 PM
:41844114 Like this:
      'abc'⎕SIGNAL 123
abc
      'abc'⎕SIGNAL 123
     ∧
 
@Zacharý Just like an operator takes operands, just one more level. And yes, why not. However, practically, anything beyond hyperators probably has very little use.
 
so it's the same as ⎕SIGNAL∘1
 
@EriktheOutgolfer Also, ⎕SIGNAL is much more powerful, as you can give it name-value pairs for the extended diagnostic message, ⎕DMX.
 
What if you needed to import the idea of higher order functions?
Is it true that some people say that APL is a functional language?
 
7:42 PM
@EriktheOutgolfer No, because the right argument is significant. 1 is WS FULL.
@Zacharý Uh, operators?
 
@Adám well, ngn is written in JS and by a then-newbie in APL, no surprise it's not full-featured :P
 
That operate on higher order functions
It's turtles all the way down,
 
@Zacharý No. Dyalog APL is a multi-paradigm language. You can chose to use it for functional programming if and when you wish.
 
@Zacharý Dyalog APL can actually be used as OOP too (:Class exists)
 
@EriktheOutgolfer Also, an error trapping mechanism like Dyalog APL's doesn't make sense in a JS environment.
@Zacharý Right, that would work if we allowed ⍺⍺⍺⍺… Also, did you know that tradfns can return functions as result?
 
7:45 PM
@Adám Example?
 
@EriktheOutgolfer LMFTFY: Dyalog APL is used as OOP too
 
@Adám unless I'm mistaken, I didn't state the opposite?
:P
and an example would be nice too
 
@EriktheOutgolfer can actually be used implies that it is unusual/strange, no? But most of what we write lately is pure OOP.
 
@EriktheOutgolfer Conga, MiServer, etc. Feel free to explore our GitHub repos.
 
7:57 PM
@Adám woah
 
@Zacharý Yes, of course. So, is that "operate on higher order functions" enough for you?
 
Yes, it is.
 
@EriktheOutgolfer What? Looks like C#?
 
@Adám I mean what language are the .dyalog files in
 
@EriktheOutgolfer Dyalog APL ;-) That's what production APL looks like these days. Not quite the APL you're used to from PPCG…
 
8:00 PM
well it doesn't look APLish at all
I guess Dyalog has evolved while the others are left behind :p
 
@EriktheOutgolfer Yes, exactly.
@Zacharý That is exactly a power of Dyalog APL. YOu can mix and match and interweave functional, procedural, OO and use tacit or explicit style for any of them (although tacit OO is a bit… weird).
 
8:18 PM
Tacit OO? That seems awful
 
 
1 hour later…
9:28 PM
@Adám how does the general outlet for using both operands and arguments with tradfns looks like?
 
@Uriel Outlet? You mean header line?
 
@Adám yea. and the inner application of the operands
 
@Uriel Result←LeftArg(LeftOpd OpName RightOpd)RightArg
 
@Adám how do I apply the operand inside the function? just RightOpd someData?
 
@Uriel Yes, it is just a function (or variable or whatever).
 
9:32 PM
@Adám and can I combine some operands under parenthesis like (RightOpd1 RightOpd2 RightOpd3) like I can do with the arguments?
 
@Uriel No, I don't think so. I think only the right argument and the result have name lists. But you can try. The editor will warn you if invalid.
 
@Adám ok, thanks!
 
@Zacharý Completely point-less points-free (= tacit) .NET approach to calculating how many days are in between two dates:
 SetUsing←⎕USING∘←
 DotNet←SetUsing'System'⊣⊢
 WithDotNet←⊢⊣DotNet
 Link←⊢∘⊂⍨,⊢∘⊆
 DateTimeObject←⍎'DateTime'⊣⊢
 Date←⎕NEW DateTimeObject Link 3↑WithDotNet
 To←'Days'⍎⍨⊢∘Date-⊢∘Date⍨
 
If J ever became object oriented ... I swear
 
Look ma, no variables!
 
9:36 PM
Unless variable=Function, in which case yes.
 
@Zacharý J has so-called object orientation.
 
@Adám So it has support for objects, but is not object oriented.
 
@Zacharý No, there are no names of variable values there, only static functions.
 
I've heard the term "object orientation" before, I think
 
@Zacharý Well, swear, then!
 
9:50 PM
That does not look like OOP, at all.
 
@Zacharý The J book or the tacit APL I wrote?
 
The J. It's creating methods with STRINGS!
 
10:08 PM
@Zacharý That's how J does "tradfns"/"dfns" instead of tacit functions.
 
Are functions first-order objects in J>
 
@Zacharý They are like in APL, modifiable by operators. However, J also have gerunds, which are really just nested character arrays representing the functions, but which can be applied by designated operators. This allows "arrays of functions". You can basically model/implement all this in APL using and ⎕NR.
 
Okay, it makes some sense now, still odd though (probably because I'm used to APL)
 
10:31 PM
I wonder if that's possible to do by abusing tradfns.
 
@Zacharý Whether what is possible?
 
An array of functions
 
@Zacharý If you keep them in character arrays or in a namespace or in namespaces, then you can.
      fns←⍬
      (fns,←⎕ns⍬).fn←×
      (fns,←⎕ns⍬).fn←-
      (fns,←⎕ns⍬).fn←÷
      (2⊃fns).fn 3 4 5
¯3 ¯4 ¯5
@Zacharý ^
 
Name spaces are first-class objects?
 
@Zacharý A namespace is just another scalar value like a number or a character, but they are mutable.
⍞←(⍎2⊃'×-÷')3 4 5
 
10:42 PM
@Adám ¯3 ¯4 ¯5
 
@Zacharý ^
 
@Adám So what was this about?
 
@Zacharý Here you have an "array of functions" and use ⍎⊃ to pick which one to apply.
⎕←'×-÷'∘.{(⍎⍺)⍵}3 4 5
 
@Adám
 1             1     1
¯3            ¯4    ¯5
 0.3333333333  0.25  0.2
 
@Zacharý ^ Cartesian function application.
 
10:45 PM
Woah.
That's a hack
 
@Zacharý Does it look less hacky if you do Apply←{(⍎⍺)⍵} and then use ∘.Apply ?
 
It doesn't look hacky, but it is hacky, if that makes any sense.
 
⎕←10 20 30∘.{⍺(⍎⊃⍵)⊃⌽⍵}'×-÷'∘.{⍺⍵}3 4 5
 
@Adám
30            40    50
 7             6     5
 3.333333333   2.5   2

60            80   100
17            16    15
 6.666666667   5     4

90           120   150
27            26    25
10             7.5   6
 
@Zacharý ^ Cartesian dyadic function application.
@Zacharý So basically all J does is provide built-ins which do these "hacky" things.
 
11:00 PM
Ah, I see.
Oh, apparently there's a menorah hat.
 
@Zacharý Here is an operator which applies its operand functions on the argument(s): Try it online!
 
@Zacharý Why? It is last day of Hanukkah 2017 by me. (At least I hope so, as I just lit the menorah with all the lights, signalling the last day.)
 
MY STUPID AMERICAN MIND!
Sorry, the 20th
not the 12th
(Wrong date format)
 
@Zacharý Yay, I got it!
 
11:15 PM
:)
 

« first day (328 days earlier)      last day (2316 days later) »