5 ms·
Excellent article. Continuation is probably the most mind-blowing piece of programming theory I was ever taught. However, this is a complex article. I feel lik
by nmc 13y ago
Excellent article. Continuation is probably the most mind-blowing piece of programming theory I was ever taught.
However, this is a complex article. I feel like I was only able to grasp the substance because I already know a bit about continuation — though this automated and hybrid approach is quite new to me.
I wonder how hard this text is to understand, for someone who does not know what "continuations" are.
- ColinWright 13y agoThis is a classic problem. Programming concepts, like math, build. If you are missing fundamentals then you are not ready for the next step, but if you never see that the next step is there, you never know about your missing fundamentals. recently I asked if people wanted to have a look at and comment on the abstract math pieces I'm slowly writing[0] and a number have said yes. Someone replied[1] that they "would love a simply math blog." The problem is, the simple stuff you'll skim, the complex stuff you'll get frustrated by, and no one will be happy. Unless you go through the stages you won't have the skills for the next level, and until you get exposed to the higher levels, you won't realize that there's more work to do. This is, of course, related to the "Blub paradox"[2] that we're all so familiar with. [0] https://news.ycombinator.com/item?id=7139635 https://news.ycombinator.com/item?id=7139635 [1] https://news.ycombinator.com/item?id=7143139 https://news.ycombinator.com/item?id=7143139 [2] http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html
- nmc 13y agoYes, you need foundations to build a knowledge temple, but that was not my question. I am simply wondering how the average HN reader, with average programming abilities and knowledge, would feel about an article of this level.
- arethuza 13y agoI don't know about the "average HN reader" I would have thought that anyone with an undergraduate CS degree should be reasonably happy with that article.
- ColinWright 13y agoBut what we've seen many times is that many programmers do not have an undergrad CS degree. More, many programmers claim that formal education is a complete waste of time, and that they can quite happily program capably and competently without having gone to college or university. Some of them will have been autodidacts who have taught themselves this sort of thing already. Some will be autodidacts who have enough foundations to be ready to understand this. But some will not. Some will have picked things up here and there and become useful programmers, but find this sort of thing hard going and mind-blowing. The question was to wonder what proportion of HN readers fall in each category.
- arethuza 13y agoI guess doing a survey here in HN is probably the only way of measuring that. As for CS graduates, I suspect that even those who had a course in that area might not actually be that interested - I was fascinated by lambda calculus, combinators and implementations of functional languages so the article was probably more interesting for me than most.
- xyzzy123 13y agoI think the "By Example: Continuation Passing Style" post linked from the article does a pretty good job of this.
- agumonkey 13y agoI was thrilled when I read about CPS, now my favorite "crazy thing" is logic embedded eval, see evalo (eval embedded in minikanren logic) http://youtu.be/fHK-uS-Iedc?t=27m35s http://youtu.be/fHK-uS-Iedc?t=27m35s giving you naive bidirectional evaluation. Too funky.
- endergen 13y agoLooked that up, head exploded. Generates quines!?!! http://en.m.wikipedia.org/wiki/MiniKanren http://en.m.wikipedia.org/wiki/MiniKanren
- agumonkey 13y agoAnd the aside question 'which program will output X'.
- beering 13y agoConstraint-based logic programming is actually pretty straightforward. You just define a constraint, and it tries to go and find things that fit. Quines is as simple as saying that you want eval(x)==x, and it will try to fill in answers for x. It's a bit underwhelming, though, to realize that it will tell you that "5" is a quine, since eval(5)==5.
- pessimizer 13y agoThis link is in the first sentence: http://matt.might.net/articles/by-example-continuation-passing-style/ http://matt.might.net/articles/by-example-continuation-passi... You don't think that would be enough to explain continuations to a working programmer? It doesn't really use any specific or formal mathematical language, and explains them mostly in terms of js with examples.