« first day (1800 days earlier)      last day (857 days later) » 
04:00 - 20:0020:00 - 00:00

4:27 AM
⋄]help ;
 
@Adám atleast there is pi and delta and capital sigma and pi
 
 
5 hours later…
9:09 AM
how do i reshape in J?
ok found it
 
 
1 hour later…
10:21 AM
@axiac Hi there. Interested in APL?
 
10:37 AM
@Adám run APL in Vs code?
with Code runner?
 
@Adám ok
@Adám I doubt Github Copilot don't support APL.
 
@Fmbalbuena there arent many github APL projects
 
I know for a fact that it doesn't. But it doesn't really make sense either, as there's so little boilerplate for APL. By the time it would be able to guess what you're doing, you'd be done.
 
^
 
10:40 AM
@Adám APL keyboard?
 
it exists
 
i use @Adám's altgr layouts
so many glyphs :)
 
I want more!
 
APL bar in VS code?
 
10:42 AM
@Adám you want to add more glyphs?
 
@Fmbalbuena I think you can easily get a language bar there. Maybe it is possible to implement as an extension. Experienced APLers don't need it ¯\_(⍨)_/¯
@PyGamer0 Yes, a few.
 
@Adám which?
 
isn't there an APL extension for VSCode that supports typing APL glyphs with a backtick?
I have to admit that i have never written a larger bit of code without prototyping it first with RIDE.
 
@KamilaSzewczyk i found one
 
why is index origin 1 in APL (by default) and 0 in J?
 
10:47 AM
@PyGamer0 Off-hand:
 
@Adám download APL interpreter for keyboard?
help me
@Adám ^
 
you want an APL interpreter for your keyboard :)?
 
yep
 
sounds tough
 
@PyGamer0 APL originally had only 1 due to being mathematical in nature (cf. Mathematica, MatLab, R, Julia, …) but it turned out suboptimal for some domains, and a choice was introduced. Didn't take long before people realised that a choice is worse than a suboptimal standard, and J (which didn't need backwards compatibility) chose 0.
 
10:52 AM
CMC: Generate an identity matrix of order x.
 
aaa wrong thing
 
@Adám ah, why is 1 suboptimal?
 
@Fmbalbuena I don't understand what you mean. (Also, you don't need to ping me twice — or even once, when I'm active — I'm attending to requests as fast as I can.)
 
,⍨⍴1↑⍨1∘+
this
 
CMC: print "Hello, World!" but i don't undertstand.
 
10:53 AM
@PyGamer0 ∘.=⍨⍳
@Fmbalbuena You want obfuscated code?
 
oh, that's smart too
 
no, But use dfns that i haven't learned
 
them being?
 
@KamilaSzewczyk 1↑⍨1∘+1,⍴∘0
 
@Adám I stole it from APLcart, i'm sorry :P
 
10:55 AM
you can use numbers, but not ⎕UCS
 
@KamilaSzewczyk I figured. It is the most efficient solution.
 
@Adám ping
 
> or even once, when I'm active
@Fmbalbuena ⋄ 1↓80⎕DR 18464 27749 28524 8236 28503 27762 8548
 
@Adám Hello, World!
 
⋄A←{
⋄⍺+⍵
⋄⍵+1
⋄}
⋄1 A 2⋄A 4⋄5 A 4
 
10:57 AM
@Fmbalbuena (1 trailing line)
3
VALUE ERROR
      A←{ ⋄ ⍺+⍵ ⋄ ⍵+1 ⋄ } ⋄ 1 A 2 ⋄ A 4 ⋄ 5 A 4

␄
 
@Adám how does that work?
 
The bot doesn't handle multi-line functions.
 
OK, i can't create Ambivalent function.
 
@PyGamer0 Converts 16-bit signed integers to 8-bit characters, then drops the first element.
 
@Adám oh
 
10:59 AM
 
@Adám I already got that.
TryAPL Version 3.6.1 (enter ]State for details)
REDACTED
Copyright (c) Dyalog Limited 1982-2021
      A←{
	⍺+⍵
	⍵+1
      }
SYNTAX ERROR: Unpaired brace
      }
      ∧
      A←{
	⍺+⍵
	⍵+1
	}
      2 A 1
3
      A 2
VALUE ERROR
      A 2
ping
 
you can set the default value of to create an ambivalent function.
alternatively, you can use ⎕NC, but it probably won't work on TryAPL.
 
How i do?
 
      root←{⍺←2⋄⍵*÷⍺}
      root 16
4
      3 root 27
3
 
thanks
 
11:04 AM
@KamilaSzewczyk ⎕NC is allowed.
 
i think that due to me even
 
⋄a←{⍺←1⋄⍺+⍵}⋄a 2 a +⌿1 (a 2) a a 2
 
@Fmbalbuena 13
 
@Adám makes me wonder, if you can transcribe such a simple ambivalent function into a tacit form somewhat reasonably
 
CMC: Write the ambivalent root dfn without ⍺← and without ⎕NC.
 
11:07 AM
@Adám Impossible
 
No it is quite possible.
 
hold on, i wanna figure it out myself
 
4 edits in a row
 
@KamilaSzewczyk Which one, tacit or my CMC?
 
your CMC
and my tacit at once
 
11:08 AM
Uh, OK, but my CMC is for a dfn.
 
tacit makes it more interesting.
thinking about the simpler case presented above:
      ({⍺←1⋄⍺}+⊢) 5
6
I just need a tacit function that replaces this dfn, hmm
 
CMC: Print "Hello, World!" without "⎕" and "'"
 
That, I think, is impossible.
 
can be done using , i think
 
What will you execute without '?
 
11:12 AM
good question!
 
@Adám NuMbErS
 
even AV is locked behind a quad
 
@Fmbalbuena You can't execute numbers.
 
and UCS
 
is it even possible to write {⍺←1⋄⍺} tacitly
it must be done without tacks is all i know
probably some smart abuse of hooks/forks/fn composition
 
11:14 AM
A few days ago, I was wondering if letting (A f) mean f with a default left argument of A would be a good idea.
 
@Adám but i think ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()←+-×÷*⍟⌹○!?=≠≤<>≥≡≢∨∧⍲⍱↑↓⊂⊃⊆⌷⍋⍒⍳⍸∊⍷∪∩~/\⌿⍀,⍪⍴⌽⊖⍉¨⍨⍣.∘⍤⍥@⍞⍠⌸⌺⌶⍎⍕⋄⍝→⍵⍺∇&¯⍬∆⍙ 1234567890 Can be possible.
 
Prove me wrong.
 
@Adám can you?
 
I don't think so.
 
⍞←<magic happens here> gives Hello, World!
 
11:18 AM
@PyGamer0 ⍞←⍞ is even better if the input is "Hello, World!"
 
+2^3 it looks like a face
 
@PyGamer0 +1 = +Star
ok, @Adám one monadic command for me?
 
@KamilaSzewczyk It is. I just managed to write a fully tacit root
 
@Adám huh.
mind sharing the technique?
 
Nasty, ugly, hacky, verbose…
 
11:20 AM
i swear it can be reusable
welp
 
Yes, it is generally applicable.
 
@Adám one monadic command for me?
 
Oh, and it won't work on TryAPL (but I think I can make it work).
@Fmbalbuena Did you learn monadic ,?
 
@Adám No
 
OK. Monadic , is called "ravel" because it ravels an array into a long thread (vector), preserving all elements: ⎕← , 2 3 4⍴⍳24
 
11:22 AM
@Adám 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 
Yup, new, nastier version is TryAPL friendly.
 
What does 2 3 4 do?
 
You forgot dyadic ?
 
no
reshape
but wait
 
Monadic , is kind of the opposite of dyadic
 
11:24 AM
i don't remember element element element ⍴ array
⋄2 3 4⍴⍳24
 
@Fmbalbuena
 1  2  3  4
 5  6  7  8
 9 10 11 12

13 14 15 16
17 18 19 20
21 22 23 24
 
now i'm fine
@Adám is ravel flatten?
 
It is a type of flattening, yes.
 
yeah i remember but i didn't see the dfns
the ⍪ does but 2D, but i'm not doing this now.
,Y	Ravel: Reshape into a vector
⍪Y	Table: Reshape into 2-dimensional array
⍪Y	Ravel planes of rank 3 array Y to form rows of a matrix
@Adám ^ Seems dupe
 
@KamilaSzewczyk OK, so my general, TryAPL friendly solution to give f a default left argument of A is now streamlines as ⊢f[25 nasty bytes]A⍨
 
11:29 AM
disgusting
i love it
 
@Fmbalbuena Yes, APLcart has many duplicates when the purposes differ significantly, even though the code is the same.
@KamilaSzewczyk (It can be golfed a little, but then the syntax is less user friendly.) Reveal?
 
Another monadic command?
 
⊢f(≢∘∪,⍥(⎕JSON'{}'⍨))⊃⊂⍤⊣,⍨A⍨
 
god what is this
 
11:31 AM
@Fmbalbuena Monadic is "pi times": ⋄ ○0 1 2 3
 
@Adám 0 3.141592654 6.283185307 9.424777961
 
@KamilaSzewczyk Pure magic.
 
@Adám Is there something useful with ?
 
@Adám lot of faces
@Fmbalbuena dyadic ○
 
⋄A←f←1 2 3⋄⊢f(≢∘∪,⍥(⎕JSON'{}'⍨))⊃⊂⍤⊣,⍨A⍨
 
11:32 AM
@Fmbalbuena
SYNTAX ERROR
      A←f←1 2 3 ⋄ ⊢f(≢∘∪,⍥(⎕JSON'{}'⍨))⊃⊂⍤⊣,⍨A⍨
                    ∧
 
⋄ 1○20?20
 
@PyGamer0 0.9129452507 ¯0.9613974919 ¯0.536572918 0.1498772097 0.8414709848 0.9092974268 ¯0.5440211109 0.6569865987 0.9893582466 0.4121184852 0.4201670368 0.6502878402 ¯0.9589242747 0.1411200081 ¯0.7509872468 ¯0.2879033167 ¯0.2794154982 ¯0.7568024953 0.9906073557 ¯0.9999902066
 
@Fmbalbuena Well, yes, if you need to do trigonometry or complex mathematics, pi comes it a lot, (usually in needing to multiply with pi) so you need this.
 
ok
⎕←○.5
 
@Fmbalbuena 1.570796327
 
11:33 AM
is that pi/2?
 
yes
 
You can also write it as ⋄ ○÷2
 
⎕←○÷2
 
@Adám 1.570796327
@Fmbalbuena 1.570796327
 
@Adám i know, ninja'd
 
11:34 AM
⎕← 3.1415926535897932384626 ÷ 2 (i memorized pi for a random reason)
 
@PyGamer0 1.570796327
 
CMC: convert float to list example 3.1415 gives 3 1 4 1 5
@Adám i need ^ for some reason
 
@Fmbalbuena There are couple of approaches, but it isn't really a well-defined problem, due to floating point inaccuracies.
 
@Adám ignore them
 
⋄ ⍎¨'.'~⍨⍕3.1415
 
11:37 AM
@Adám 3 1 4 1 5
 
i wish safetly converting strings to numbers in APL wasn't so painful
you can either use VFI which is incredibly odd or use eval which is horrible
 
non-APLers think the Hello, World!: []<="Hello, World!"
 
@KamilaSzewczyk ⋄ 10× {⊃⎕CSV⍵'S'4} '3.1415'
@KamilaSzewczyk ⋄ 10× ⎕JSON '3.1415'
 
@Adám
NOT PERMITTED: Illegal token
      10×{⊃⎕CSV ⍵'S' 4}'3.1415'
     ^
 
Oh, right.
 
11:42 AM
@Adám 31.415
 
I guess I could put in a cover for ⎕CSV on TryAPL blocking access to writing files.
Probably not worth it; it is TryAPL after all.
@KamilaSzewczyk So, you understand it yet?
It depends on having a function that returns different results when applied twice to the same argument.
 
@Adám CMC: define a dyadic function, repeat ⍵ times.
 
I don't understand the spec. What should be repeated, and in what way? Maybe some example cases?
 
2 A 4 => 2 2 2 2
 
A←⍴⍨
 
11:48 AM
@Adám you should use A←{⍵}⋄f←{⍵} to win :P
 
A←{⍵⍴⍺}?
 
⋄A←⍴⍨⋄2 A 8
 
@Fmbalbuena 2 2 2 2 2 2 2 2
 
When to use "{" and "}"?
 
When you want to mention your argument(s) explicitly.
 
11:51 AM
Example: A←⍴⍨ vs A←1+
 
1+ isn't valid in Dyalog APL.
 
⋄⍴⍨
 
@Fmbalbuena
  ⍨
┌─┘
⍴
 
hmmm, I doubt this.
maybe lexer bug?
 
No, that's correct.
 
11:54 AM
ok, if the function without right argument errors, then you need "{", "}" and "⍵"
 
@PyGamer0 Maybe and too.
 
or the function with dyadic dfns in the last char, then you need...
 
@Fmbalbuena Well, yes, that's one possibility. What you're getting into here is apl.wiki/Tacit_programming
 
@Adám "+.×"? i doubt
 
@Fmbalbuena Are you asking if it is valid syntax? Yes it is.
 
11:58 AM
yes, but there is no number
@Adám "." operator?
 
Right, . is a dyadic operator, so it binds + and × to form a new function.
 
+.× equivalent without "."?
 
You don't need to ping me when I'm actively chatting.
 
ok
You don't need to pong me when I'm actively chatting.
 
@Fmbalbuena +/⍤×⍤0 1⍤1 99 I think.
 
12:07 PM
⍤?
not now; bye
 
⍤/
 
⋄∘\1 2 3
 
@Fmbalbuena
SYNTAX ERROR
      ∘\1 2 3
       ∧
 
ok, nvm
 
 
2 hours later…
1:50 PM
how can i make a triadic operator?
 
You can't.
 
:(
 
what how does it work?
 
Add is just a normal dyadic operator.
In fact, Add is just or or (their monadic derived functions are equivalent).
 
1:55 PM
ah understood
 
2:31 PM
is apl a functional programming language?
 
Somewhat, it has higher order functions and tacit, both of which can be considered functional. But it's not as functional as something like BQN that has first class functions, etc.
Also, dfns are pure
 
@FawnLocke well, they're meant to be. Doesn't mean you have to abide
 
Yeah
 
@FawnLocke BQN has FCF?
 
2:37 PM
Yes.
 
Ooh, this is a nice concept:
 
is there a reason Marshall chose to use ‿ to separate array elements instead of a space?
 
@PyGamer0 Yes.
 
to prevent confusion?
 
2:50 PM
No, to allow adjacent arrays.
E.g. current APL's ⍤0 1 2 3 4 vs BQN-style ⍤0 1‿2‿3‿4 and ⍤1‿2 3‿4 and ⍤1‿2‿3 4
If both stranding and application uses adjacency (not, as commonly thought, spaces) then there's simply no way to do this without parens or an identity function.
I disagree with this design of BQN; I'd rather have no stranding at all. One less thing. Other languages do just fine with an array notation and no stranding.
 
@Adám but stranding is a lot easier to mentally parse than another nesting level
 
It is a matter of taste.
 
is it a matter of (1 2)(3 4) vs 1‿2 3‿4?
 
No, there's still stranding in the prior example
 
well, in the case of BQN, 1‿2 vs ⟨1,2⟩
 
2:58 PM
@PyGamer0 The latter is invalid syntax on its own.
 
so, for a nested array, ⟨1‿2, 3‿4⟩ vs ⟨⟨1, 2⟩, ⟨3, 4⟩⟩
 
I prefer no stranding, maybe because I'm so used to it? BQN's stranding confused me at first ngl
 
@dzaima Devils advocate: Why not have yet another level of stranding then? APL's (1 2)(3 4) could be 1⁐2‿3⁐4 etc.
 
lovely
 
@Adám balance
 
3:00 PM
@Adám android is honestly given up on rendering that monospaced block
i wish i could change my browser font (said it like 11 times)
 
huh, it displays (presumably) correctly everywhere for me
 
You could try a userscript
 
@dzaima even on android?
@FawnLocke how?
 
@PyGamer0 yeah
 
ah must be samsung then
 
3:02 PM
Depends on what browser you're using. For chrome-based/firefox there's stylus, which let's you define css on a per-page basis
 
i am on samsung (FF, android 8)
 
hm seems like a problem of chrome
 
I think my ideal array notation would be a superset of JSON, that extends JSON to handle multi-dimensional arrays.
 
@FawnLocke not on android; besides some random chrome offshoots, the only thing I know that allows extensions is firefox nightly
 
Interesting
 
3:04 PM
Oh, and entirely ASCII.
 
@dzaima Ah, that's a shame
 
Isn't there a way to hack an Android device to add and remove fonts?
 
smh Android is a linux distro and not even customisable
 
In principle, you could build your own Android with just the fonts you want…
 
Don't most Android phones let you unlock the bootloader or something?
 
3:06 PM
@Adám root?
 
Maybe, dunno.
 
@dzaima (firefox android used to have full access to firefox extensions, but Mozilla did a Mozilla and.. just restricts you to using only like 5 extensions for no reason at all ಠ_ಠ)
 
sadly i dont have my own phone so i cant experiment
 
3:21 PM
which version of dyalog apl does tio use?
 
 
ok
@Adám maybe add a minimize button to your language bars (since i cant access the run button on tio on mobile)
 
@PyGamer0 Isn't there an ❎?
 
@Adám that closes the LB
i am asking to minimize the LB not entirely close it
 
how would you un-minimize the language bar then?
 
3:34 PM
there would be a button
a minus sign button
 
..where? if the language bar is, uh, minimized
 
to unminimize
 
So you'd want it to… collapse to be just an expand button in the corner.
 
@Adám yes
@dzaima top right corner
 
now you just have a problem if there's a button in the top right corner
 
3:36 PM
We need two minimise buttons: minimise left and minimise right ;-)
Or simply make the restore button switch sides every 3 secs.
 
4:05 PM
@Adám maybe make it dragable
@Adám lol
 
 
1 hour later…
5:24 PM
@Adám I like this too. Probably I wouldn't make the 'P' touch the ground
 
@MasterQuiz I think I agree. I'd also restore the P's lost corner, and the dimensions are a bit off, but I like the concept.
I'd want to see it constructed as a 4×4×4 cube.
@dzaima Do you think you could render 4 4 4⍴1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1?
 
i literally just started working on a model :P
 
gmta
 
(also that's one too many 4s)
 
4D rendering FTW ;-)
Actually, if you project those 256 hypervoxels down to 2D, you should get the same image
 
5:38 PM
@Adám but we are 3d beings how can we see 4d?
or unless you are secretly a 4d being :P
 
Projections. Same idea that lets you "see" 3D images on a 2D screen.
 
very makeshift, but i gtg for a couple mins
 
This has "natural" lighting, much like your very early GEB-style cubes. Try making it flatly coloured like that blueish one above.
 
If a logo, it'll probably mostly be on white or black.
Is it just me or is the perspective off? Shouldn't these corners line up?
 
i just chose an arbitrary angle
 
Ah, what happens if you angle it so the corners line up and the thin (apparent) white line disappears while the gap on the right becomes a perfect parallelogram?
 
oh cool i want the magic angle
 
Yes, but now there are lighting effects again, instead of flat colours.
 
6:04 PM
no, they were always there
 
I see now. It was just much less noticeable.
 
I like it.
I wonder what would happen if the two "cutouts" would be filled with an almost transparent fill…
Maybe OP's original idea with the hexagonal light background wasn't so bad?
 
What happens if you put an infinitely thin P-coloured bottom plate below, and put an infinitely thin A-coloured back plate to the NE?
 
Yes, but now pull the P back up to a single layer.
(I think we'll see the bottom and back plates meet NW of the L's _ )
 
I quite like that.
 
6:59 PM
⎕←{(⊣/⍵)(⊣⌿⍵)(⊢/[2]⍵)}4 4 4⍴(5 ¯2 6 ¯3 1 ¯8,23↑12⍴¯3 1)\'#'
 
@Adám
┌────┬────┬────┐
│####│####│#   │
│#  #│#  #│#   │
│####│####│#   │
│#  #│#   │####│
└────┴────┴────┘
 
7:21 PM
like the cube logo, prefer it without a fill
 
I can certainly add the no-fill version to the page, but I think it looks odd when shrunk to an icon.
@rak1507 Have a look at apl.wiki/APL_logo#Letters_From_the_Cube now.
 
yeah none of the 4 are that clear as a small icon unfortunately
I think my favourite atm is 'apl matrix'
 
7:39 PM
I'd not be sad if this was chosen, but yes, my current favourite is also APL Matrix, but I'm undecided between ⍝⍴⌊ and Clarendon.
 
i still like nested bitmaps
 
I like it too, but it bothers me that no version works well on both light and dark backgrounds (except the b/w version if rendered in a colour).
I also like Cube Apple and Lamp Rho Downstile Box. I'll be happy with any of these.
 
the G4 cube?
 
G4?
 
oh I thought you meant the Apple cube computer
lol
 
7:47 PM
 
I had never seen the cube version of it
probably infringes >10 Apple (Inc.) trademarks, so I like it.
 
Getting sued by Apple might give APL some much-needed publicity, but I'd personally rather play it safe with a non-apple logo.
 
04:00 - 20:0020:00 - 00:00

« first day (1800 days earlier)      last day (857 days later) »