16:00 - 20:0020:00 - 00:00

8:00 PM
⍞←(3 4⍴⎕A)[1;2] ⍝ remember the ⍞← or ⎕← !

@Adám B

Phew, that's all folks!

not all, just for this week :p
we still have groups 5 (partial), 6, 7, 8, 10

@EriktheOutgolfer Right. We managed 31 primitive functions. See you all next week?

8:01 PM
And everyone else too!

@masaldaan Do you want me to keep you on the write access list?

Yes, I'll try & make it. Yes please

@EriktheOutgolfer 9 has no functions, but 10 has two.

I'd attended Aaron & Morten's workshop last week @Functional Conf, I'd like to keep myself in practice

in Bangalore?

8:03 PM
Yes, that's right!

@masaldaan Wow, great to hear. How was it?
@masaldaan If you want a reminder a couple of hours and again a few minutes before, you can sign up here.

I'd like to think of a better description than mind-blowing, but can't come up with it
Intensive Functional Fun at Aaron Hsu's Array Funhouse Intensive yesterday: https://functionalconf.com/proposal.html?id=4064
That's me in the back row

@masaldaan Feel free to hang out here. The room is usually active every day, and no (APL related) question goes unanswered!

@Adám It was an eye-opening experience, I've written a lot about it on twitter, but I've not felt such joy in coding since I wrote my 1st basic program on my father's ZX Spectrum

8:06 PM
@Adám well, except friday afternoon-saturday afternoon, because it's Sabbath

But if I don't practice regularly, I'm afraid I'll forget everything I learn
that's why I'm here today

@J.Sallé You're very welcome. My pleasure. In fact, I'm on vacation this week, but didn't want to miss the lesson. You guys are great1

@EriktheOutgolfer The room is actually active then too, but Uriel and I don't answer until after the Sabbath.

@EriktheOutgolfer "9 1 2\square 2 3\rho\iota 6" would be a vector 2 number "9 2"?

8:07 PM
Oooooooh, vacation? Nice! Hope you enjoy it!

@Adám I'll be sure to see you all next week (or earlier if I have silly questions), have a nice vacation

@RosLuP "Square"? Try copying from the following:

@Adám don't worry, @ngn does the job for you then

)lb

@Adám ← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\\\\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬

8:09 PM
@EriktheOutgolfer yes, I'm happy to answer questions if Adam is not here, just @-mention me

@ngn I can't express enough how much I appreciate your participation.
(ngn is a real APL guru. He even implemented his own APL in JavaScript!)
Also, check out the chatbot's profile, it has lots of useful links.

@Adám warning: somewhat incompatible with Dyalog and much slower

The symbol is ⌷ but had problem in copy from chat k

@Adám and that while he was still learning how to JS IIRC

@RosLuP So you mean 9 1 2⌷2 3⍴⍳6 ?That won't work because 2 3⍴⍳6 only has two (and not three) dimensions.

8:12 PM
ngn/apl is now used by repl.it and plj541's APL.js

@EriktheOutgolfer And is on TIO too.

the latter did some heavy modifications to it as well, so we can say that ngn/apl has a child too!

@RosLuP code formatting makes it look like ⌷ and it's not as wide as ⎕

@RosLuP Now I realise what you want. You're missing the concatenation function , :
⍞←9,1 2⌷2 3⍴⍳6

8:15 PM
@Adám 9 2

@Adám ngn/apl is one tab on my phones Firefox that I haven't closed in probably a month :p

@RosLuP FYI, ⌷ is called "Squish Quad" or "Squad", and ⎕ is called "Quad".

@dzaima you should organize bookmarks into folders lol
for me it's (Bookmarks Bar > Programming languages > Mainstream > APL-like > APL > ngn/apl)
and the ngn/apl folder contains 7 tabs for me

@EriktheOutgolfer wow, and i should probably pay some attention to my abandoned children... I really don't want to create wrong impressions about APL, and ngn/apl has quite a few bugs.

@EriktheOutgolfer it's the only tab I haven't closed in a month. Everything else (including SOGL) gets closed after usage

8:19 PM
@dzaima We're hoping to make TryAPL responsive very soon:
Don't mind the horrible colours.

@Adám ngn/apl doesn't need internet though

@ngn well, for example the confusing "identity operator" which is probably a bug itself :p (⍁)

@Adám idea: can someone turn these into bookmarklets, so people can drag them to their bookmarks bar and they can work in any web page?

@ngn Which? The individual characters on the language bar?

8:22 PM
@ngn Interesting idea. Awkward way to type if in a folder, but could work on a large screen with a wide bookmarks bar.

@EriktheOutgolfer hm, bug in Chrome, isn't it? github.com/ngn/apl/issues/101

no (btw that issue is mine) I meant how it behaves

Also, whomever starred the language bar: That's a great idea, I'll pin it so it is always available to copy from.

@ngn what is that operator supposed to do?

@EriktheOutgolfer give an identity element to a user-defined function
@EriktheOutgolfer e.g. {⍺×⍵}/⍬ is an error but {⍺×⍵}⍁123/⍬ returns 123
@EriktheOutgolfer pressing [ / and tab works for me, it inserts a ⍁ (that's in Firefox, I'll try Chromium in a moment)

8:27 PM
@ngn Do you know about my suggested scheme for all those for dfns and tradfns?

@ngn as I said there, it's a browser issue, just added it there for the record
of course it works, as I said

@EriktheOutgolfer works for me in Chromium (not quite Chrome) too; so I'll close the issue then?

@ngn This:
{
¯3: identity element
¯2: prototype
¯1: inverse
0: don't   ⍝ this already works
1: do      ⍝ this already works
}

@ngn done

8:29 PM
∇ r←{A}f B
normal code
¯3: identity element
¯2: prototype
¯1: inverse
∇

@EriktheOutgolfer thanks

@ngn And ^^

@Adám ah, yes, I've seen this before

@Adám so, would {¯2-1:a} be equivalent to {¯3:a} ?

8:32 PM
@EriktheOutgolfer This is just an idea. It has not been implemented (yet). In dfns, guards may only evaluate to a 0 or 1 singleton. My scheme is that the non-Booleans will be considered true if the relevant use case is in effect.

@Adám when would guards be evaluated?

@ngn Yes, just like with guards and error guards. Also, you can use multiple conditions, like {¯3 ¯2:a}.

@ngn Just like now; when reached.
@EriktheOutgolfer And for the tradfn, execution would start at the appropriate label.

@Adám what is "prototype" in the case of functions?

8:34 PM
@Adám what if you do f←{¯3:...} ⋄ f/⍬ ⍝ f is never evaluated here

@Adám that seems like a new feature altogether

@EriktheOutgolfer by the way I don't support prototypes in ngn/apl

Btw guys, I'd love to see someone solve this in APL (or any variation of it, I don't judge :p )

but the big accomplishment about ngn/apl is that you managed to do it in...JavaScript

8:37 PM
1 message moved to trash

@EriktheOutgolfer believe it or not, people write interpreters in even worse (but more performant) languages - C :)

@EriktheOutgolfer f¨EmptyArray is an empty array with prototype f prototype(EmptyArray).

@ngn like Dyalog for example :p

@EriktheOutgolfer No, already works for primitives.

@EriktheOutgolfer ngn/k will be in C :)

8:38 PM
@ngn I've seen the code for an interpreter in C once. It scared me.

@ngn Uh oh, direct competition with K.

@Adám not that, I'm only a mortal

@ngn well, if you manage to buy kdb+, that is

@EriktheOutgolfer I don't want the database, just the core language, for general-purpose computing

oh, and a feature of ngn/apl is that 0÷0 is the same as ↗'DOMAIN ERROR' instead of 1

8:41 PM
@EriktheOutgolfer I don't like q too much - the kdb part that is not k

but don't you have to buy it to use k?

@EriktheOutgolfer only because they don't sell k separately

8:43 PM
@Adám of course - as in beer, not speech; that's not my understanding of "free"

"Free as in beer" is probably my favourite expression in English.

@Adám that's exactly what I meant by "scared me" :p

@EriktheOutgolfer 0÷0 is undefined in maths; people who disagree should do something like div←÷ ⋄ ÷←{⍺ ⍵≡0 0:1⋄⍺ div ⍵} or maybe go to a different universe where 0÷0 is a number :)
@J.Sallé my C code is denser than that :)

@ngn D: oh god

8:52 PM
@J.Sallé which part of the "incunabulum" don't you understand? ;)

#tio alias message )lb ← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬

)lb

← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬
4

#tio alias message )lb %handle% ← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬

8:53 PM

)lb

@Adám ← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬

@ngn only the part after the first typedef >.>

@J.Sallé What a coincidence, that's exactly the part I have troubles with too.

@J.Sallé :) they say god (Arthur Whitney) has now replaced C with his new invention b - github.com/tlack/b-decoded

8:58 PM
@ngn What happened to kOS?

@Adám or, they're so secretive you never really know... I thought it was a great idea

I see. And on that note, I'll beg your leave. See you all around!

2 hours later…
11:00 PM

@Uriel Yes, with the same limitations as Classic.

@Uriel The presence of the ⍵ character governs what each line does.
@Uriel I also wanted the mapping to actual ⎕S to be obvious.