« first day (1763 days earlier)      last day (1188 days later) » 

02:59
(1+) 1 2 3
SYNTAX ERROR: Missing right argument
      (1+)1 2 3
        ∧
      ⍝ you can get around with that,


      {1+⍵} 1 2 3
2 3 4
It seems to me APL does not support partial function ... sth like in Haskell
is that the technical problem or just unnecessary in APL?
 
2 hours later…
04:54
@elliptic00 dzaima/apl supports that Try it online!
dyalog doesnt
05:38
Is this a good way to make a multiplication table: {↑{⍵×⍨⍳w}¨⍳w←⍵}?
⋄{↑{⍵×⍨⍳w}¨⍳w←⍵} 4
@PyGamer0
1 2  3  4
2 4  6  8
3 6  9 12
4 8 12 16
⋄ ∘.×⍨⍳4
@Bubbler
1 2  3  4
2 4  6  8
3 6  9 12
4 8 12 16
@PyGamer0 ^
how does that work
⋄ ∘.{⍺'×'⍵}⍨⍳4
05:44
@PyGamer0
┌─────┬─────┬─────┬─────┐
│1 × 1│1 × 2│1 × 3│1 × 4│
├─────┼─────┼─────┼─────┤
│2 × 1│2 × 2│2 × 3│2 × 4│
├─────┼─────┼─────┼─────┤
│3 × 1│3 × 2│3 × 3│3 × 4│
├─────┼─────┼─────┼─────┤
│4 × 1│4 × 2│4 × 3│4 × 4│
└─────┴─────┴─────┴─────┘
Outer product by multiplication ∘.×, using both arguments to be ⍳4
05:55
so ∘. is outer product?
and what is the . and separately?
When used separately, . is inner product (like +.× being matrix multiplication), and is bind or beside (docs)
06:38
But in this context, they form one thing (a monadic operator that takes its operand on the right).
07:21
∘.{⍺'x'⍵'='(⍺×⍵)}⍨⍳4
┌─────────┬─────────┬──────────┬──────────┐
│1 x 1 = 1│1 x 2 = 2│1 x 3 = 3 │1 x 4 = 4 │
├─────────┼─────────┼──────────┼──────────┤
│2 x 1 = 2│2 x 2 = 4│2 x 3 = 6 │2 x 4 = 8 │
├─────────┼─────────┼──────────┼──────────┤
│3 x 1 = 3│3 x 2 = 6│3 x 3 = 9 │3 x 4 = 12│
├─────────┼─────────┼──────────┼──────────┤
│4 x 1 = 4│4 x 2 = 8│4 x 3 = 12│4 x 4 = 16│
└─────────┴─────────┴──────────┴──────────┘
not sure why the box wrong alignment
what cause the that?
@elliptic00 font issues
its not monospace
you mean the font on my RIDE ?
ah wait
i thought you meant here
@elliptic00 do you have APL386 Unicode installed?
pretty sure it uses that font
@PyGamer0, not sure.. I just download RIDE, this is all,
try installing this font?
and restarting RIDE
wait idk
07:37
@PyGamer0, how do load the APL386 font?
@elliptic00 You need to hit Ctrl+K before Enter.
@elliptic00 @PyGamer0 And no, RIDE comes with its own APL385 font. No need to install anything separately.
∘.{⍺'x'⍵'='(⍺×⍵)}⍨⍳4
┌─────────┬─────────┬──────────┬──────────┐
│1 x 1 = 1│1 x 2 = 2│1 x 3 = 3 │1 x 4 = 4 │
├─────────┼─────────┼──────────┼──────────┤
│2 x 1 = 2│2 x 2 = 4│2 x 3 = 6 │2 x 4 = 8 │
├─────────┼─────────┼──────────┼──────────┤
│3 x 1 = 3│3 x 2 = 6│3 x 3 = 9 │3 x 4 = 12│
├─────────┼─────────┼──────────┼──────────┤
│4 x 1 = 4│4 x 2 = 8│4 x 3 = 12│4 x 4 = 16│
└─────────┴─────────┴──────────┴──────────┘
You got it!
Ok, it works..:).. I did not hit CTRL-k
thx.. guys..
@elliptic00 You pressed the [fixed font] button?
07:41
oh no, I have to hit CTRL-k to fix the alignment problem, it works
I do not think it is font issue on my RIDE, I just need CTRL-k
Right, no connection to RIDE. I think PyGamer simply misunderstood you, thinking you had a problem in RIDE rather than in this C=chat.
@Adám i got confused when elliptic said RIDE
Yep, try to go back to previous question, why any reason why Dyalog did not implement partial function in APL, (1+) 1 2 3 does not work?... but other APL works perfectly..? is that technical reason?
@elliptic00 It was discussed internally, and IIRC, Roger Hui said it'd not add any value over the existing 1∘+. It'd also be asymmetric: +∘1 works, but (+1) can never work. Furthermore, it'd add confusion with existing 2-trains: You'd not be able to count parity, as currently you know (A f g) and (f g h) and (f g) but this'd add both (A f) and (A (B f)) etc.
1∘+ 1 2 3
2 3 4
oh.. you can do that in APL.. I just know that..
∘ can work for any user defined function?
07:55
Yes, all operators work on all (non-niladic) functions, primitive, derived, user-defined, .NET, external, you name it!
Btw, for the record, I personally support adding A f as A∘f
@humn Hi. Interested in APL?
@milia Welcome to the other APL chat :-)
[Let me pipe in with a well-felt "Hello!" My pap has APLed for half a century.]
pap?
[And i helped him get something going. "Pap" = "Pappy" = "Dad"]
Oh, that's a new one. TIL.
I did my best! I reverse engineered him to continue his multidimensional research.
But when catch came to crawl i could not get files to load or save.
Yeh, the dude is prefix while i don't mind postfix.
08:00
Which APL do you (and your father) use?
And in the effort i learned to appreciate the mystique of APL. Oh its number is something like 84.
Translated from Fortran originally, unless mistaken.
To gush, i love every language that is pure.
APL is.
APL84? That does ring a bell.
Not the first version. A stalwart in its time.
Perhaps an early version translated to C . . . who knows, i'm a bystander
Maybe a screen shot (or copy-paste) of what it displays when it starts? E.g. Dyalog APL shows:
Dyalog APL/W-64 Version 18.2.44766
Serial number: 314159 - pre-release software
Tue Nov 23 08:06:42 2021
APLX shows:
APLX for Windows
Copyright (C) 2001-2010 MicroAPL Ltd
WS Size = 20.0MB, Version = 5.1.0
Oooooooohhhhh!
I owe you a screenshot.
08:07
Maybe it is APL.68000?
(Digging.)
So far:
* UNIX APL\11
(Digging further.)
Oh wow, make that 1976:
* University. Since 1976 it has been modified by Jim Besemer
* and John Bruner at the School of Electrical Engineering, Purdue,
* under the direction of Dr. Anthony P. Reeves. Mike Cain got a
* copy from John and used it extensively. Many years later, Mike
* was motivated to clean the source up to be more or less portable.
0
Q: What APL expression best emulates the SQL select statement, given a matrix

Rudi AngelaI have CSV files with numeric data and I would like to perform analysis on this data. I am hoping that using APL will give me more flexibility than reading this into mysql and performing selects. But to start with I would like to do simple extractions like 'select * from mydata where col1 = 2020'...

@humn Oh, I think I've seen that.
Not surprised.
It is ancient indeed.
If you want to play around with APL, have a look at apl.wiki/Running_APL
08:15
To be frank, i put so much effort into getting APL to work for someone for whom i care, when i saw a stackexchange devoted to such i could not resist dipping my toes.
That someone continues to break ground and just submitted a grant proposal. With APL at his haunches.
The dog (= dad) thinks 2-dimensionally.
Meh, only 2‽ ;-)
!
That elicited a laugh that woke the neighbors who called the cops. Thank you, @Adám! Think i'll shy away and pretend that i'm not here.
Ah, you're actually in California? Middle of the night there.
08:30
Yes, and i'm following up on your lead up there (Running_APL).
Thank you!
Followed.
To be less directed, would you agree that APL is more prefix than postfix? Or is that a moot question by now?
@humn considering it's not postfix at all, yes
Thank you.
I don't mind infix either, but that isn't as pure.
I'd say half prefix and half infix, but yeah, definitely "more prefix than postfix"
Hi humn btw :)
08:38
Don't we both get around. . . .
Just try and hem us in.
I got here by shredding many wounds in order to get APL to work for someone.
@rak1507 @humn APL does have a postfix aspect, imo: Monadic operators are postfix to their operands: +/.
postfix/prefix just depends on your point of view... to me + is prefix to /
@Adám , versatile! Thought so.
oh I suppose that does actually make sense
it's all 3 then!
Indeed!
The only thing it isn't is omnifix.
08:42
@rak1507 , then there's operator precedence.
@Adám , funny!
Announcement: APL Germany's meeting is about to resume. You can still join in by emailing [email protected]
what is main reason you guys choose APL instead of J ?
I choose both :P
I assume the main reason is APL have more tools around ecosystem?
08:50
@elliptic00 started with APL, tried J, but didn't like it enough to switch
@elliptic00 I have a very hard time parsing J. The .s and :s just don't combine with what's on their left for me.
For me, it is hard for me to remember all the J symbol means, but for APL, the symbol is easy to remember since it is just math like symbol, you pretty much can guess it for many APL symbol..
(Bye again. Please stop being so interesting.)
Agreed. Many J "symbols" are simply "poor man's APL", like i. for and o. for and e. for . But I think the visually worst parts of J are the uses of [ and ] and { and } in non-paired ways.
do you guys play around with BQN ?, unfortunately, I don't have enough APL skill to evaluate how BQN are different from APL ?
what do you guys think about BQN? , it seems to me it is "nice" language.. throw away the bad thing about APL after 40 years, and keep the good stuff about APL in 40 years..
09:06
That is pretty much exactly what BQN is.
I like that you can see the syntactic class of every name and symbol, but otoh, I find that BQN is missing some of APL's beauty.
From the author website.. it says it is more "consistent" than APL ?
In general, I'm happy with BQN's vocabulary, but I do think and and various set functions are missing.
@elliptic00 That's for sure. No question about it.
@elliptic00 I'm not sure that's true.
Either I.. I'm still pretty new to APL..
09:43
How do I repeat a function until a certain condition has been met? I know loops and conditions aren't good practice but I'm making a bf interpreter so I don't really have a choice
 +⌿÷≢
┌─────┬─┬─┐
│┌─┬─┐│÷│≢│
││+│⌿││ │ │
│└─┴─┘│ │ │
└─────┴─┴─┘
RIDE can show all APL expression for parse tree?
@Itay123 Function⍣{condition}
 +⌿÷≢
  ┌─┼─┐
  ⌿ ÷ ≢
┌─┘
+
how can make RIDE show above like parse tree?
]boxing on -trains=tree
09:50
nice..:)
10:02
Just got around to installing Tatin, and it has some funny packages in the test server:
 example-Foo                                         1
 example-Goo                                         1
 example-Moo                                         1
 example-Zoo                                         1
Sounds like test packages. Appropriate for a test server, no?
Yeah, I guess.
10:41
Uhhh I'm on phone. How I do execute code?
@Fmbalbuena Where?
Phone.
RGS
RGS
@Bubbler Is this the real bubbler I know?
11:14
Yes.
 
1 hour later…
12:25
@Adám thank you :)
@Adám I tried {x+←1⋄x}⍣{x≠20}⍬ and it didn't work... What am I doing wrong?
@Itay123 It terminates when the condition is true.
3 hours ago, by Itay123
How do I repeat a function until a certain condition has been met? I know loops and conditions aren't good practice but I'm making a bf interpreter so I don't really have a choice
oh... I guess I'm too used to while loops
You wrote "until" not "while" :-)
In tradfns (procedural functions), Dyalog APL has both :While condition:EndWhile and :Repeat:Until condition (and yes, you can mix and match the beginnings and endings).
 
2 hours later…
14:24
We're soon recording the next arraycast.com episode, focusing on tacit things. Any favourite tacit functions (including trains) you'd like me to consider?
RGS
RGS
I like the tacit interior of my favourite APL expression: ⋄ 1 +∘÷⍣≡ 1
2
@RGS 1.618033989
14:35
@RGS Thanks!
@Adám ⊢≡⌽ - classic
14:51
≠⊆⊢ is always a nice one
@rak1507 ⊢≡⊖ (well, ⊖≡⊢) is already on my list. Leading axis ftw.
@JamesHeslip On my list – of course! ;-)
@Adám I find that's probably my most common use. Used today, even.
I'm not sure what I use most. Maybe ≡⍥⎕C and ⍳⍥⎕C and ∊⍥⎕C or maybe ∨/⍷ or ⊃⍷ – but I probably use more ad-hoc trains, like these in TryAPL:
KB←('(^|[^0-9])0\.0*(\d)' '\.'⎕R'\1\2' ',')1↓3⍕1000(⊣÷⍨⌊⍤÷⍨)⊢
Delta←∊'+' '→' 'kB',⍨∘KB¨⊣,-⍨,⊢
RGS
RGS
😭 That's terrible :P
@RGS Why?
@JamesHeslip Maybe me too. Just found it on two consecutive lines on TryAPL.
RGS
RGS
15:06
It looks so long... When I look at that, I feel no desire to parse it.
@RGS Both of them, or only the first one? They both have largish constants.
RGS
RGS
Both
But now I see that half of the functions in Delta are actually inside ''
Maybe better as:
Group3s←'(^|[^0-9])0\.0*(\d)' '\.'⎕R'\1\2' ','
KB←Group3s 1↓3⍕1000(⊣÷⍨⌊⍤÷⍨)⊢
suffixes←'+' '→' 'kB'
Delta←∊suffixes,⍨∘KB¨⊣,-⍨,⊢
 
3 hours later…
18:29
does anyone use GNU APL on Emacs?
 
4 hours later…
22:31
Happy Fibonacci day :)
@milia How so?
Oh, 1123?
@elliptic00 I tried to use it, with a plugin but I failed miserably to make it work. Apparently it's not meant to be for me to ever use Emacs. And to be honest, after cheating once more my eternal love -vim- with it's nemesis, I should have seen it coming. This is the plugin: github.com/lokedhs/gnu-apl-mode if u manage to make it work, do lmk :)
@Adám they say that 23/11 is a rational approximation of phi. I don't see it, as it's about 2.0 and phi is about 1.618. But it's everywhere, so it seems legit. I'll have to run my own experiments to believe it tho ;) google.com/url?sa=t&source=web&rct=j&url=https://…
@Adám by the way I'm using orchid from my cell's chrome browser and works like a charm. Nice !
22:59
@RGS is the above expression that yields phi (15:25 CET) an expression that calculates the continued fractions representation of phi? If yes, it's beautiful even if I still don't get how it works.
23:14
@milia Yes it is, and equivalent to 1+÷1+÷1+÷1+÷+÷1
2
23:29
@Adám thanks :) !
RGS
RGS
23:57
@milia I'm going to bed, but I'll find a link to a proof for you tomorrow
But hey, it's the ratio of consecutive Fib numbers, and 11 and 23 aren't fib numbers. It's 21/13 that you care about, and then 34/21, 55/34, 89/55, etc
Hmmm yeah, I was pretty skeptical with 23/11...Thanks ! Good night !

« first day (1763 days earlier)      last day (1188 days later) »