APL & Array programming

Ok - I will take a stab at a PR with a processor to remove this bit of metadata. I’ll also try to test if it remembers state without the metadata.

1 Like

That seems to be referring to the hidden state of the whole ToC.

1 Like

ToC does remember state even if I remove the hidden metadata stuff. I am starting to look at a code to work on a PR.

I think this metadata should be stripped as a default. I think that it’d be more intuitive to strip it always since users can hide cells with directives. If a more advanced user wants to use that metadata for something, then I think better to put the burden on them to make the change than newer users.

Thoughts?

Yes I think so too. If you add it as a processor, it’s easy enough to turn on/off.

So I’m catching up and just starting on my APL journey today.
Right out of the blocks, I like this quote at the top of Learning APL

A language that doesn’t affect the way you think about programming is not worth knowing. –Alan Perlis

I promote the same thing about Smalltalk – my favourite language. Although far from mainstream, the pureness of its OO system changes how you think about OO. Sometime in the future I’d love an opportunity to lead a similar study group using Pharo. But I’ve been too comfortable for too long using mostly Pharo, so I’ll focus on just APL for a while, and thanks Jeremy for this opportunity to stretch myself.

Right now, in my pre-start vision of my APL journey, I’m naively inspired to try introducing APL array features to Pharo, to facilitate DL from there. This includes a few ambitious ideas I’d like to experiment with (which may be tempered by my APL experience and time constraints):

  1. Interfacing Pharo to Vulkan compute engine for GPU matrix arithmetic
  2. Drive Vulkan from APL inside Pharo by porting ngn-apl

p.s. It might be an interesting exercise to work out what some of these APL snippets do…

3 Likes

Jeremy was running late. So, today’s session is cancelled.

2 Likes

Sorry about today - I was interviewing JJ Allaire and it was meant to be 1 hour, but it was so interesting we went for two hours! So let’s skip today.

1 Like

Cool beans. It would give me few days to catch up with lectures and materials till next week.

FYI @bencoman I removed the " (but don’t do that - stretch your mind!)" you added re 0-based indexing. I kinda agree with you, but I know a lot of APL experts don’t, so I don’t think we should be making such a definitive statement on this issue in the wiki!

2 Likes

so I don’t think we should be making such a definitive statement on this issue in the wiki

Cool, and thanks for the background - good to learn something from the counter-edit.


Now rather than another post, I’ll slip this in here…

When starting a new language, its worthwhile to consider the ancient wisdom
on how one might Shoot Yourself In The Foot.
TL;DR - from recent context maybe skim at least: apl, lisp, logo, python, smalltalk.

Thanks @Ezno for fixing the hidden code issue.

I’ve also fixed some issues with the CSS and HTML, and we now have a real APL font on our website! :smiley:

image

3 Likes

This video was very fun to watch in the sense that you dont need even a display to interact with a computer! or in this case a REPL!

1 Like

The video descriptions on YouTube should include a link to that video’s forum thread.

3 Likes

Only Tuesday to Friday (Australia). Hope to see u tomorrow.

1 Like

Done!

Not every empty cell is equal. :dizzy_face:
So, make sure to activate ]Boxing on -style=max before coding. Reference: Shape Reshape - APL Course

image

2 Likes

My keyboard layouts, including ones that use right-side Alt as APL shifting key. This key, also known as AltGr, is particularly well-suited as APL key for those that use US or similar layouts, as the key has little or no usage.

2 Likes

I have a question, how are monadic and dyadic operations “defined” or chosed the way they are?

For example for +0j4 is different than the dyadic 0j4+0j4 but how some one said that monadic + is congujate?

I mean for - is pretty easy, but I think for others is more like a definition?

I guess it depends on each individual glyph. e.g. for monadic +, conjugate seems like a good choice, since - flips the sign of the real part of a number… so you’d want a similar glyph to represent flipping the imaginary part of a number. And + is very similar glyph conceptually to -.

In the end though, yes, it’s the decision of Ken Iverson (and those that have followed in his footsteps) as to what each glyph should mean. There’s some etymology here:

https://www.jsoftware.com/papers/APLDictionary.htm

Now that you said conceptually similar I think I get why it flips the imaginary part…

So - flips in the real axes the number thus flipping its sign… so + flips the imaginary part along imaginary axes… thinking that way makes perfect sense… I guess will keep asking for “weird choices” which probably I will not get at first.

Guess it is not “matematically based” but makes sense.

Great!