Sunday November 25th
Digging into Continuation Monad
- Today, I spent the day trying to get a sense of a couple things.
- Continuation Monad
- CPS (Continuation passing style)
I spent the day doing a fair amount of reading, and plodding along in Sandy’s Types book. It was a long and tough struggle, because a lot of it was dealing with the constant reminder that I’m not anywhere where I’d like to be yet. I am learning a lot and it’s definitely stretching me, and I spend a lot of time just trying to get things to work. However, it is a book that I plan to spend time on re-reading when I get better at Haskell. For example, I definitely am not able to complete all of the exercises in the book right now. I do the best I can at the moment.
- Bear in mind that I had no idea what any of these things were (listed above) before today. I have a better understanding, and find some (eg SECD and Krivine) to be fascinating. I will list a list of resources I read up on today (or at least looked at) below. I pretty much went through and took a pass from beginning to end of these resourced listed (below) today.
Feelings of Not being good enough
- I constantly feel this. I’ve run into some situations where I’ve felt like people were competing with me, (in one particular incident, I realized only afterwards that the person in particular was doing anything they could to prevent me from gaining more experience, even though such person had a CS degree, a great GPA and great job prospects) and I am perpetually perplexed by this because in my mind, I am the quintessential underdog. I’ve gotten this far solely by trying to outwork the person next to me. But maybe one day, it won’t be enough. I don’t have a CS degree, and I’m out of my mind for applying to grad school, but I want to be there. I just need to convince someone that I will be worth a spot there. I’m competing constantly with people who are in a better position, so I usually expect disappointment. But I keep going because I don’t see myself doing any other thing. And what is a life if you don’t try, right?
I perused these today. I loved the BRICS one, and the Stack Overflow answer, as well as Landin’s paper. What I especially liked is that these particular papers are about ideas and are not swimming in PL notation, so they were a lot easier for me to follow. I’m not a Scheme expert, so some of the code took a bit of time to follow (eg in the SECD paper that showed its evaluation-dump process), but it was still reasonable if I spoke it out loud.
1 A Rational Deconstruction of Landin’s SECD Machine
2 The mechanical evaluation of expressions By P. J. Landin
3 A Generalization of Jumps and Labels PETER J. LANDIN
4 Proving Algorithms by Tail Functions ANTONI W. MAZURKIEWICZ
Blog post on Continuation Monad by Lambda The Ultimate
5 ON THE RELATION OF INTERACTION SEMANTICS TO CONTINUATIONS AND DEFUNCTIONALIZATION - ULRICH SCHOPP
6 Categorical Structure of Continuation Passing Style - Hayo Thielecke
7 The Discoveries of Continuations - JOHN C. REYNOLDS
8 Definitional interpreters for higher-order programming languages - John C. Reynolds
10 Ncatlab Continuation examples
Eddie Yang Blog Post - Nested Loops and Continuation
SO example on Continuation Monads
Gabe’s blog post on Continuation Monads
I’ve mostly downloaded and bookmarked these
- But I’d like to come back to them as I gain a better understanding. Maybe someone else will find them useful as they’re all in one place.