Lindsey: *reads TaPL section 18.10*
Lindsey (excitedly yelling from living room): I understand late binding!
Alex: Show me!
Lindsey: *goes into Alex's office; writes stuff on whiteboard; talks a lot*
Lindsey: ...so you can see that when we invoke method a and a calls b, we don't use the b from the superclass Foo, but instead...
Alex: ...we use the b defined in Bar which extends Foo.
Lindsey (a little crestfallen): Yes. That's what I was about to say. *brightens up* But the exciting part is, we can implement all this using the fixpoint combinator!
Alex: Yeah, but nobody does that.
Lindsey: Oh...sure they...do...
Alex: No, they do it with a method lookup table and references. Bjarne explains it in the book! Or you can go look at the implementation of Java which last I checked is still open source despite Oracle's best efforts!
Lindsey: Pish tosh. I reject your small-minded stateful paradigm. We shall triumph! *flounces away*
Lindsey: *reads TaPL section 18.11*
Benjamin Pierce (paraphrased): This sucks. Let's use a method lookup table and references.
Uh, right. So. When I declared it to be NaProLaMo, Chris chrisamaphone suggested that I make daily updates. I suggested weekly ones instead, but I haven't been doing that, either, because I've been doing a terrible job of keeping up and I'm embarrassed. My original plan involved reading at least a chapter of TaPL every day, and at least one article or half a chapter of some other book every day. I managed to keep up the chapter-of-TaPL-a-day thing for a week, but didn't do most of the other reading, and then there was about a week and a half during which I did no quals reading whatsoever. (And it wasn't because I was slacking! I was working hard to finish my other projects!)
So now I'm desperately trying to catch up. I've been inhaling TaPL all weekend. By the end of today -- assuming the standard "today ends at 3 a.m." convention -- I'll be only two chapters away from on schedule. If you don't count the appendices, I'm well past the halfway mark now both in terms of chapter count and page count. Of course, I'm still way behind on everything else. The next week and a half is going to be insane. Every now and then, when I'm starting to feel like I'm going to die, I put down TaPL and pick up Davey and Priestley, which is kind of like deciding that Red Hat is too hard to admin so you're going to try running Slackware.1
Some of it is speedy going. Some of it is slow going. I just spent probably 30 minutes convincing myself that the least fixed point of set F is also the smallest F-closed set, which is probably about 29.5 more minutes than it should have taken. On the other hand, I maybe actually understand anything at all about coinduction now. One more chapter to go tonight. Oh, and the second half of "Blame for All" because oh, yeah, I still have actual homework to do.
Um. I'll see you in nine days?