Back to Index

fast.ai APL study session 4


Chapters

0:0
8:23 The Forgetting Curve
34:30 Dark Links
40:1 Strings

Transcript

Hi there. I don't know. Hello. Hi. How are you, Serana? Hi. Yeah, I actually live in Sacramento, but yes, I go to UC Davis. Yeah, I'm in Placerville right now. I don't know if you know what that is. Oh, okay. Yeah. I know Pleasantville. What are you doing there to make sure.

Placerville. It's a. My wife's grandma's house. Sorry, I guess I misheard what you said originally. I guess I don't know. Are you just here for a little bit or. Just for vacation or something or. Actually a little over a month. Okay. We have family here. So you're in the same time zone as me.

Yes. Yes. Yeah, I know Davis pretty well. I spent some time. Okay. Yeah, I've been there. Well, yeah, I mean, my, my, my dad works in Davis as well. And of course I go to. I've been going to school with Davis and so. So you commute. Yeah. Yeah. But I don't, I mostly work from home anyway.

Now that I'm focused on my research and given my research, it's all deep learning stuff. I can, I can do most of that from home. So I mostly want some home, but. Yeah. Anybody got any. APO news or anything else. Interesting happening. Well, I was able to get. A simple CSV file loaded and.

Moving average. So that was exciting. That is exciting. I'm going to share my screen so I can. Show people. Oh, there's quite a lot here. Actually. Where was that in study group three. That was in tabular data. That was a cool. Assignment thing that was very helpful about developing though.

What was this one. The assignment assignment. Yeah. I was able to kind of assign things to. To the display, the special character. And then that let me. Print out different. Parts of the formula. In order to. Oh. That's right. Yeah. It printed whenever it runs, but six will get assigned to the.

That was pretty handy. So quad doesn't have to be the far left thing. I mean, of course it doesn't. When you think about it, but I hadn't. Thought about it. So it's basically like a print statement. You can check it anywhere you like. Yeah. Which is really nice that we're trying to debug what you're doing.

But. And I love that you're. Using the. Corto thing to publish it too. So, okay. So you've got an end of day quote data CSV file. So I noticed. Dialogue has, okay. So you said dialogue has a CSV thing built in. So do they have built in. Or do they have a CSV thing built in.

How do functions tend to start with quad? Is that like how they spell them? I think for a lot of the IO ones, I think. I don't really know for sure, but I know they've got like a CSV. I think they've got an XML and a Jason as well.

Unfortunately, they don't have anything for like JPEGs or. And these are images, but they've, they've got a few. Starting with quad. Got it. And I guess this is like indexing the first five by three. That's right. Yeah. Okay. Looks like you need to make this a map down. So.

Then you're doing some masking. Anyway, I don't understand all this stuff yet, but I guess we'll get there. I can walk through it. There's, there's some security that they'd like or we can. Yeah. Yeah, I'd rather. Rock through it once we know all the glyphs. Cool. But look at that.

You've got a plot. So that's great. And right square bracket seems to be another thing that's used for kind of like, I don't know. I think they'd maybe not APL functions with their dialogue commands or something. These right square bracket things. Yeah, I'm not really clear. All the conventions for what all those.

You know, mean and, and when to look for something in. Right square back it versus there's some that are right parentheses and others that are bought. I'm not really sure what the difference between them all is. Yeah. And is this. Is this basically indexing into the indexing the third column and all the rows?

Is that what that means? Okay. So that would be the same as. Colon comma three in PI torture number. Yeah. And I guess this is just printing out the fact that it didn't return anything, which it could choose via. A null array. Well, that's awesome. So yeah, I'm hoping to build up more complexity over time in this.

And eventually I'd like to get a random for it going, but. That seems like a, um, not a good first step. So. No, I mean, I know trees are something which like. People say APL is really well suited to, but it doesn't feel well suited to, and you have to kind of learn.

The tree techniques for APL, which is something I would be fascinated to learn about as well. So. Um, Yeah, one day. Um, I wanted to. Have a quick diversion. If you guys don't mind it or something, I just thought. Um, Is. Of great value. Um, Which is, uh, I've mentioned Anki before.

Do any of you guys use Anki or super memo or any other repetitive space for learning vocabulary? Uh, For learning vocabulary, right? Uh, for remembering literally anything. Yeah. So, all right. As I guess, um, let me explain. Cause like, this is. Not exactly APL, but it's also like. The most important single.

Thing I know of. The learning things. So. Including APL. Um, So, um, So there was this guy called, um, Ebbinghaus. Who. Developed this idea. Discovered really this idea called the forgetting curve. Um, And, um, Yeah, as it says here, it's been through the 18 eighties. Um, and basically what he did was.

He. Set up this really boring. Experiment where he had to try to remember. A list of. Random sets of letters. Like, look at them and then remember them the next day. And then he tracked over time, like each day, how many he remembered. Um, So. Um, This is like the percent that he remembered, and this would be like the day.

Um, And yeah, it like. Followed this kind of. Shape, right? Where, um, Actually, it's. Trying to redraw that. This kind of shape. Um, so like you discovered he forgot a lot of them really quickly. Um, but some of them stuck around. Um, and I mean, it shouldn't, it doesn't ask him to, of course, it goes to zero.

Should show it going to zero. Um, This is actually already interesting of itself because like. A lot of people, particularly adults, I find. Um, Feel disheartened and frustrated when they forget things and they think it shows that they have a bad memory. Um, but that's not true. Actually, all humans.

Rapidly forget you things that we learned. And so then, um, What he tried doing was saying, well, what would happen? If I. If he. Restudies his. Random sets of letters one day later. Um, and to restudy them, he basically go. He gave himself a quiz to try to remember them.

Right. And then if you didn't know the answer, you would check it. And so, of course, immediately after that. Um, Is. A hundred percent, well, you know, a hundred percent issue or whatever his kind of base recall level is. And of course, after that, he started getting it. But interestingly, he didn't forget it as quickly.

And then if a couple of days later, he gave himself a quiz again. And then followed to see how long he remembered things for. It was flatter still. And if he did it again, a week or two later. It really hardly started, you know, I found that it's hardly forgetting things at all.

Um, and so this is the key to remembering things. Basically forever. And there's a. Absolutely amazing website that nobody knows about. Um, called super memo. Um. And so for super memo is software. Um, but it's also this. There's heaps of research. Basically it's by a guy who's dedicated his whole life.

To. Using this technique to remember as many things as possible and to basically organize his whole life. Um. Uh, got all these rules of knowledge from those formulations. So the guy's name is Peter was yet. He's absolutely amazing. Um, so he actually rediscovered this stuff from Ebbinghaus independently. Um, but that has greatly developed it over the last few decades.

Um. So there's this piece of software called Anki. Which you can just say, okay, I want to learn. I want to remember something. So you give yourself a quiz question. Right. So, uh, for example, if you want to remember what. Monadic plus is on a complex number. You can like.

You know, type in some. Something like that. And obviously I should use a proper negative, but I'm not using an AP or keyboard here and then you're putting the correct answer. Here or whatever. And so then you'd say add and it creates a question. And so what then happens is.

Next time you open Anki and you say, and you'll say study. And it will start showing you. Your questions. If you get it right. You can say it was, you know, basically either hit one, two, three or four to say I got it wrong or I got it right.

But it was hard. I got it right. It was okay. It was easy. And you can see here, if I say I got it right and it was easy, it's going to be about 10 minutes before it shows it to me again. That's because this is new. Right. And then the next time I do it, if I get it right again, it'll give it'll be a day.

And then if I get it right again, it'll be like four days. If I get it right again, it'll be like two weeks. But once you get it right, like five or six times in a row, it'll be a month or two before you see it again. Because it's because the thing about the forgetting curve is that the better you know something, the less often you have to revise it.

So this deck is actually my daughter's and her friend. So Claire and Gabe's deck. I've just got a little bit of it here. And so you can browse it and you can see, like, you know, we've got things like fractions and we've got things like the successor function and we've got things like bind and out of product because they're doing both math and APL at the same time.

I guess a bit like us, but they haven't done lots of things before. So, yeah, so I've got something here saying, oh, what happens if you do divide, dot, divide, call that F and you call F of that. And that's well learned that basically we actually get that same thing because that means reciprocal or reciprocal.

So I try to come up with questions that force them to like both remember the technique, but also, you know, utilize some thinking. So, yeah, so Gabe and Claire, if they remember or if their parents managed to convince them, they try to do their Anki every day. And at first it was like a bit of a struggle to get them to do it.

But now that like we've been doing it for a month or two, probably more like two, there are things they learned a couple of months ago now and that it gets popping up on Anki and they press good and they can see that they won't see it again for like three months.

And they're like, oh, this is awesome. You know, so it's gradually getting easier and easier anyway. So I just wanted to mention this because given we're all learning something new, this is a good way to remember, you know, the alphabet of glyphs. And so I actually used this for Chinese 10 years ago or something.

Yeah, and the reason it's impossible to forget something is if you say I got this wrong, it resets that the forgetting curve back to showing you again tomorrow and then three days and then five days or whatever, you know, so. So as long as you do Anki regularly, it's impossible to forget the things that are there.

It does mean it's important to only put in things there that you really do want to remember forever because, you know, otherwise you're going to be spending all this time quizzing yourself and stuff that you actually don't care about. And you can always go back and delete things, but, you know.

Hey, don't forget to tell me things vocally rather than putting in the chat. Okay, so in the chat to niche conventions that Radek has this nice thing called AI quizzes, which is really cool. And this Radek on the call, how did you, if we use, how did you get the space repetition going?

Is there a Python module for this? I implemented it in Ruby on, I think it might be on the SuperMemo website. I'm not sure. I use the algorithm they have, yeah. But the algorithm is there, yeah. Lots of algorithms, right? Like SuperMemo algorithm version, whatever, SM17. So there is, yes, there is, I think, some commercial product, from what I remember, and they use some version of the algorithm there that is not published, but the earlier version had published and I made some tiny modifications to simplify it.

I see. So he put it in his... Jeremy, can you hear me? Yes, I can. Okay, okay. So, can you click on the first link that I sent on the chat? Absolutely. That is the best thing I have yet found on the topic of space repetition. Great. Thank you.

And hello, by the way, Risho, is it? Yeah, yeah. Nice to see you. Thanks for joining. Where are you joining us from? From India. It's 5.30 in the morning here. All right. Whereabouts in India are you? Urgata. Okay. And I know Koreans in India as well. And India is all one time zone, is that right?

Yes, yes. So it's somewhat impractical because the time it is almost like midday in some parts. In some parts, it's barely daylight. Yeah. Yeah, Australia has got so many time zones. This is the first time I am actually adjusting to Australian time zone because before I adjusted to American and European.

Yeah, yeah. Yeah, we do that too. So like a lot of the stuff we do is in the US. So we have an early start and an early end to our day for that reason. All right. Thanks for the tip. Have you seen, there's like some work by Michael Nielsen, I think, like there's a, I think like a quantum computing book, but it was like all with space repetition.

Yeah, it's called quantum country. Yeah. Yeah. And yeah, I think he has a lot of discussion about about space repetition and things like that as well. Yeah. Yeah. Yeah, he came to a pretty late, but he. So the address bar, quantum dot country that will open the site. Just quantum dot country.

Yeah, Michael came to space repetition pretty recently but he tends to get into things deeply when he gets into things which is great. So, yeah, him and Andy so and he used to be at Khan Academy. Have you been using this for a deal. Yeah, and he said, yes, indirectly, because I helped my daughter with her cards, sometimes.

So, therefore I ended up doing it as well, which seems to be enough because I haven't forgotten any glyphs yet. If I do find I start forgetting some glyphs I will do my own. I just want to point out, like, when I was working with Jeremy, in the beginning, I used to complain that, hey, like, I can't remember stuff like Jeremy would also tell me sometimes hey you don't remember stuff.

And then I would also say hey I feel like I don't remember any, maybe I'm just done. And he actually sent me some, some books by, there was one by Barbara Oakley, for example, who also does the Coursera course like I think it's the most popular Coursera course learning how to learn.

But it's, it's really interesting. And then you send me another one by like their guides like professional memory. I think that one is working with anything. Yeah. So, Ed Cook was the world memory champion. And he actually created a startup called Memrise, which actually adds an additional thing, which is if you want to really remember things well, you need a mnemonic for them, something to make it click in your head, you know, and preferably connections to other things, which actually for APL is easy because most of the APL glyphs have their own mnemonic already, you know, they're, they're drawn that way for a reason.

But he actually is particularly do this for Chinese to make sure that each of the hunter characters had some kind of mnemonic picture and stuff. And then yeah so Ed Cook also was the topic of a book, Moonwalking with Einstein, which is a really nice book. And it's one of those books that might help you change your understanding of yourself, because Josh is a guy who's think journalist at the time, who thought of himself as somebody who had a bad memory.

And he teamed up with Ed Cook to learn memory techniques and yeah so the whole book's kind of all about his journey. And interestingly, Josh actually went on to create something you might have come across, it's Atlas Obscura. If you've seen that it's a very cool, very cool website full of interesting things.

Cool. Thanks for letting me have a bit of a diversion. So I had one question about maybe a little bit more about the history and terminology of APL. For example, like, I was, you know, I think yesterday you, we had gone over the Zilde symbol. Yeah, but like it technically looks like a data symbol.

Right. Oh, not quite it's got a squiggle it's a squiggly theta. Yeah. So like, I guess, but I'm just generally wondering where did these names come from. Like, it's so it's kind of completely like unlike what it should be called like if you're looking at the Greek letters or whatever.

So I'm kind of confused from that. Well, okay so I mean this is not the Greek letters, it's not wrong. The ones that are Greek letters are correct. So alpha is called alpha, iota is called iota, and omega is called omega. There, there is a thought that even those shouldn't be there because like, they give preferential treatment to people of kind of European backgrounds who might recognize Greek letters.

You know, but generally, so they were all created by Ken Iverson and his wife. I think like his wife let drew them or something. And they're designed to be. They're designed to be demonic. Right. So for example equals as the equals we recognize, and it means that one, two, three equals two, two, three will do a element wise equality return a Boolean.

And like this one here is like extremely much. Sorry, I always forget. Screen. Okay, so 123 equals 223 gives 001 because it's element wise equals and yeah so it's just showing you on the order here that it's actually not a tilde. This one here, I kind of think of as like extremely equal to because it checks whether two things are exactly the same items and exactly the same shape.

I believe something like that. Yes, it checks whether. As you can see, so exactly so that example one. Oh, I should change. I got the wrong symbol here. So is it. There we go. Okay, so these are equal and. All right, one equals is extremely equal to is false because they're different lengths.

Whereas is normal equals two is like broadcasted element wise. So this is kind of like mnemonics you know and then obviously this is that like not version of that. And then some of them are kind of like borrowed from other areas. A lot of them destroy a drawings of things this is the thing on the left hand side of a function this is on the right hand side of a function.

This is the biggest thing and the littlest thing. So yeah, they made them up, basically. And then somebody I think in the chat was him says Zelda is a portmanteau of zero tilde, which is exactly what it is. It's a zero with a total through it. So, were they, I guess when these were created because like these are all Unicode characters right so they are now when they are now okay so before they were not really part of the code and.

So one of the things that really helped a lot was there are these things called golf ball typewriters I don't know if you've ever seen them, but they're just, they're like normal typewriters. But instead of like lots of little different things that bang there's a single thing that spins around and goes up and down to bang, and there was a APL.

One of those that was created. And apparently that helped a lot because then people could like easily typeset things but until that time my understanding is that Ken and his wife, I can't quite remember her name Jeanette or something. Yeah, they basically would like draw them and then stick them in the right place and, you know, typeset in that rather old fashioned way so yeah must have been a lot of work.

Most math was probably done that way anyway. So yeah, they ended up becoming part of Unicode. So, you know, fonts. Most fonts don't have all Unicode characters in. And so if you're wondering why it is you can look at like a web page or something with APL characters, even if you don't have an APL font installed.

Your operating system behind the scenes tries to find any font that contains a character that's that's needed and will generally show it to you using that font, if it, if it can, and it only falls back to the kind of like question mark or box if it can't find it at all.

So it's a really actually a really great font. It's kind of like my favorite coding font in some ways anyway, which is Jessica and Jessica extended contains all of APL in quite a nice way and pretty much everything else, and it's a really nice font. So if you're ever wondering what font to use for your terminal picking this one is not a bad choice.

I created so many characters and variants. Quite amazing. Okay. I love that font. You know, I will think a lot about everything, mainly from Twitter, and then some things from like Hacker News, and some things from like following links from one of those places finding things. Okay, so right so we've got a kind of running.

I don't think there's probably anything to use that might have just been G H pages have all or anybody do you know if there's a way to like, ignore a branch like, I never need G H pages locally right this or. And that's going to update a lot more.

And he really want to pull master. All right. I thought we could do like some Boolean stuff today. If that sounds right for everybody. So these are all pretty straightforward I think, unless some of the monadic ones are weird. Looks like equals doesn't have a monadic version. Dialogue language elements.

Oh, if anybody's interested. Oh, okay, I've got a couple of ideas for coding projects, if anybody's interested. The first is this year, when rendered is, you know, an APL character in backticks. I think, ideally, we'd want it to automatically hyperlink to the dialogue documentation. Wouldn't that be cool. So, if we went to here.

Yeah, it'd be nice if these were all automatic hyperlinks to the documentation. So if anybody's interested in trying that the way you would implement it is you would we're using. Well I think Isaac's about to change this to use nb process, and then be process, which is going to become nb dev to a couple of weeks.

There's basically a list of like processes, which are like all the things we do to change cells and you can see each one's normally just two or three lines of code. That's one piece and then another piece is doc links, which is the thing that does this in Python.

So in Python, I've got something, I guess it'd be better to look at the notebook actually. So you probably noticed that in nb dev websites, we automatically hyperlink anything that's in backticks. So here's an example. So in the source, this just said backtick numpy dot array, and it's automatically been hyperlinked.

And the way that's done is we use linkify. So that splits the lines up, it goes to each line, checks whether or not we're in a fenced area or not. And then once we find the right lines, we create links in them, which is done using this class. So yeah, there might be somewhere to do that in APL.

So that'd be that's one idea for a project. Another idea for a project is numpy is really useful for me as a teacher, but I have to use this kind of hacky approach to use it as a teacher. So I've created a deck for Gabe and Claire called Super School, and they both also have decks called Super School.

And each time I do a lesson with them, I add some cards to the deck, and then I go file, export, and I then make this a collection package, sorry, a deck package containing just that deck, and I export it to a file. And then I send them that file, they click on it, it opens, and it imports that into their decks.

So it means that I can create cards for my students, in this case is Claire and Gabe, and they can import them. But we each have our own independent deck, so it means they can add stuff to their deck that I don't have in mind or study other topics or whatever.

So this project idea is to make this all much simpler. So, nky does actually have an online version. Nanky Web. So there must be, so there's an API for syncing with it. And there's quite a few versions of nky that are open source, so I guess it's all documented an API.

It would be nice if there was some way maybe through some online interface to add cards and it would automatically send them off to each person or something. Yeah, some easier way for teachers to send cards off to their students. And there's lots of stuff you could add to that, right?

You could then like add some way for then teachers to actually check how the students are going, make sure that they're actually not behind. Because what happens is if you don't study your cards, then this learning number will go up and up and up. And then the other thing I have to do is after each time I export, I then have to go and browse and delete all the cards that are there so that the next time I export there, I'm only exporting the new cards.

So there's definitely room to create some kind of cool system for a more, you know, collaborative learning approach with spaced repetition, which I think could leverage Nky. And Nky is written in Python, by the way. Anyway, that was a little aside. OK. So equals. And. I guess was that this.

Where's equals? Yeah, is that it? Yeah, it's confusing with the underlying. OK, so there's no diet. There's no monadic equals. I might just make this into a little template that I can copy and paste. OK, it'll save you some time. Equals, and it's called equals sign. Monadic doesn't exist.

OK, diet equals is equal to. All right, so what equals one groups. One equals one, two. One equals one, one. Any other interesting examples? Oh, yeah, strings. So probably useful to think about why this works. So this is remember is a special case. It's a it's a character. You know, it's a single character where also there's more than what it becomes a array of characters.

So this is a single character. So it'll be broadcast over all these characters. And so it'll end up being the same as banana equals. And then it'll be the same as that every second. Let's say that's something I didn't know before. Hey, but I can think it. Yeah, I think if you if you do this equals a and you have.

And you have a list of words. So like banana and an apple. I think it will still go. It will still go element wise through each one, rather than looking at that higher level, I think. No. Sorry, I meant the banana and apple on the left hand side. OK, equals a.

OK. I think. Oh, OK. So you're not saying you're not saying this, you're saying this. OK. And so I can tell you why that is. That's because a scalar can broadcast over a matrix. And I think that that creates. I think that's like internally a matrix. And so then if you do equals Apple, it will not find Apple, I think.

And let me just get my thing going here. Oh, that's interesting. That's three things. OK, I'm a bit confused about strings. Sorry, what you're saying we could do. Yes, I think now I can do like the same banana apple candy is equal to Apple. I think it will not.

It'll also do element wise. And so I find that. Right. I had a lot of problems with this and the moving. Yeah. Yeah. So numpy broadcasts vectors over matrices, whereas APL doesn't. So at some point we'll come across something called the each operator, which will work around that problem.

All right. Cool. And actually to make this more consistent, I should run everything above. I can't quite see because this is in the way. So not all above. You know, we can almost generate a. We can almost generate an Anki deck automatically from this notebook for your writing, Jeremy.

Oh, wow. That would be another interesting exercise. Love it. Yeah, that would be sweet. I will try to continue to write it in a way that would be that would that would make sense to do that. I certainly think so far it does. OK, that's interesting. So not equals does have a monadic version.

Not equals. And I think it's going to be helpful during the booleans quite early because you've used booleans a lot. And when we say boolean, we mean arrays containing zeros and ones. Oh, wait, how did I get to there? Not equals. I don't see them. One way monadic not equal to not defined monadic not nearly call is unique mask.

Well, OK, that's crazy. Oh, look, this is 17.1. What if I type 18.2 up here? Huh. OK. Oh, that's a bit tricky. Let's see if they also now have a monadic equals. Things are changing. That's cool. They don't. OK. Monadic not equal means unique mask. This is one of the things that happens when you search for documentation using Google that often returns the older version.

Yeah, exactly. Yeah, so. It looks like you can use you can use close what right square bracket help followed by a glove. I mean, it opens the door. OK, great. And does that even work here? Sorry, tell me what to type again. Help. Nope. With a capital H. What doesn't matter.

I don't think it matters. And then the glove. Oh, love it. OK, that's that's a winning trick. Let's put that up here. All lowercase works as well. And I think with this string, the broadcasting only happens for only one character, I think. Can you say that at this point?

Well, I want to learn more about exactly what's going on. And we actually haven't talked about broadcasting at all yet. Yes. So like NumPy, they do whenever it is compatible. Yes, that's right. NumPy does what we would call trailing axis. So NumPy, as long as the last axes are match, it will broadcast over the leading axes.

Exactly. Jay and BQN do the opposite. So they will, as long as the leading axes match, it will broadcast over the trailing axes. APL does neither. APL only broadcasts scalars or does element wise of matching shapes. So otherwise, you have to use this thing we will come across called each.

So I think we'll leave broadcasting maybe until we get to each. I think I used and closed for that. So now I'm questioning if I know the right way. Well, I'm not. Yeah, because I haven't gotten to it yet. I don't actually know the fully correct answer to this.

So I'm sure you know more about it than I do. Well, I don't know that each operator. So I think I'm distance. So there's this. Yeah, they call it each on that. Yeah, Jay has a more. Oh, I've used that. Yes, I need Enki. Quite right. And then there's also rank.

I don't remember which one is rank. Let's get to that when we get to it. Okay, so we've got to figure out what not equals does unique mask. Let's start with their examples. Now that we know about strings, their examples are going to make more sense. And so control shift dash is very useful for splitting a cell, and then control or Apple left square bracket to an indent.

Okay, I can already see what this is. It tells you whether or not the thing in this position, whether we've seen it before this list. So that's unique. So far, that's unique. So far, that's unique. So far. We have seen that before. So it's a zero. And so presumably at some point, we're going to learn how to use this to access just the elements of this, which are true.

And then that'll be how we would create a unique list of elements. Yep, if it's a test occurrence. Got it. Yeah, I think it's nice to have a numeric example as well. Okay, we're happy with that. That's weird. Okay, these all look fine, I guess. So dyadic. Oh, I suppose I should have indented all of those at once would have been faster but never mind.

Okay. Not sure this one adds much. Keep it simple as possible, shall we? Okay. And along with the easy ones. So these are presumably going to be easy as well, although the monadic versions maybe odd, we will find out. Oh, okay. That's easy. Less than. Less than sign. Less than.

So what I should do actually is do that. And then that. And then that. Cool. I assume greater than is going to be the same. All right. Is the broadcasting supposed to work just like characters even here. Yeah, yeah, this is just a one element. This is just a sorry this is just a scalar, you know, a string so not there, not there below.

Yeah, yeah, for less than. Yeah, it should be exactly the same. So we've got a scalar here and an array here so the scalar will broadcast over the array. Okay, so if we have a matrix and a vector done. Correct. Without using each. All right. But we will get to it.

So, let's, we'll get there. Okay, then. I guess it's fine we've got so much for a bit trivially easy, because just go fast. All right, so what are the greater than equal to, so they all as well just copy this. And we could just say less than or equal to greater than or equal to equal to.

And how do we type these six and four, I say so we got four, six, eight. Is this one for because it's the smallest. Yes, it is. That's good. This will be six. And then we'll need that here as well. And six. Okay. Alright, I guess we're up to this one.

Oh, depth. Okay. Yeah, so when a character is the same as another character but with an extra underline, they use the word underbar. So for example, there's an iota underbar. And there's an epsilon underbar. What other ones are there equal underbar. There's one left shoe underbar. I think that's it.

And this is comma bar because it's not underneath it. Okay, so equals underbar is colon. Equal underbar. And the monadic version of that is depth. And the dyadic version of that is match. Okay, depth is not quite right. Let's see if we can guess first. So can anybody figure it out depth is seven zero.

You can see is it the same as rank. Not quite. Oh, this is like, not consistent. What does that do. Now what about this what does this do. Okay, we're going to have to introduce something new. First, then, which is a raise and a raise. Let's see where's a good place to put that we have like a complex object section or something that's the basic object.

Let me just do it, just fixing others get these heading levels wrong. Basic objects here real. I was gonna say some objects. And then we can say arrays in arrays. Yes, because we don't need to know about matrices to be able to do this. And I think single characters and multi length characters are handled differently and nest differently.

If they're mixed with numbers. Okay, let's cut some examples I could use. So if we've got like 1234 AB you mean something like this. I think if you just do, like, even without the parentheses, like 1234 AB, I think it will, it will nest the A and the AB.

And I think that's, I think it does something a little bit different if you just do 1234 and then just if I remember right. That sounds right because it wouldn't be a list. So the reason is actually is that this one here is identical to this. And that this is actually a array.

And so this is actually an array. So this is an array containing array and this is also an array containing an array. And so let's move this one up here. All right. Great. Seems like a good place to stop I think. And we can look at match tomorrow. All right.

Thanks all. Well this was fun as usual. Thank you for hosting Jeremy. My pleasure. Thank you for joining. Okay, I have something to add. Yeah. So when you said like those characters are in Greek and they actually benefit Europeans, not quite I mean if you have taken math in high school you know all the Greek alphabet.

Oh yeah I know. Yeah physics chemistry everything. But I mean, I've forgotten at all I have a hard time remembering all the characters and I always mean to go back and learn them and I just never do. I've really confusing if no other languages like Russian, because like the, the are in Russian comes from the Greek row, but their character is just a P.

So, that's a huge pet peeve of mine is you have a lot of like redump character characters when you're using those Greek letters. So this is some one of the guys that that wrote a lot of the stuff in dialogue apl left and created a new language PQN. And one of the things he did in his simple set was not to have any, any characters from an alphabet, full stop.

This is better. Which, yeah, it was a decision I mean I guess these are letters I don't know why he can justify these exactly but I guess they're kind of not because they've got an extra dash on them or something. Anyway. All right. Bye all. Have a good day.

Goodbye. Bye. Bye.