Kyle R. Burton on 7 Oct 2011 07:35:40 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Function Fall Next Paper: Continuation, functions and jumps |
> Our next paper is Continuation, functions and jumps > (http://www.cs.bham.ac.uk/~hxt/research/Logiccolumn8.pdf) and we will > be discussing it on Wednesday, 10/19/2011, at 6:30 pm on the 45th > floor of the Comcast Center. Food, as always, will be provided by > Comcast Interactive Media. I see the paper mentions both Lambda Calculus and Pi Calculus. I've actually already read through the paper while skipping those equations - does anyone have a recommended resource that's an introduction to Lambda or Pi Calculus? So it'd be possible for a drop-out like me to read the paper in it's full academic glory? > I am really looking forward to learning all about continuations! Interesting that the paper only goes so far in describing continuations - it almost describes them as a curiosity w/o any reason as to why you'd want to consider them [1] or, even better, use them. It also only really describes them in terms of CPS, which is a good way (IMO) to get a base understanding of them, but misses some of what comes with full continuation support. It's going to be an interesting discussion, that's for sure :) I've had a very long and difficult journey trying to wrap my mind around continuations and I'm not convinced I really get them. There are terms that I'm not convinced I fully understand the difference between: CPS (Continuation Passing Style); Delimited Continuations (supported in Common Lisp, which can not support 'full' continuations); and 'full' continuations (which are supported by Scheme). I'm not sure where Ruby's continuations fall here. Here's to hoping y'all will help me improve my knowledge on this. Kyle [1] Continuation Based Web Frameworks are one argument for continuations. For me to get the 'why' of this, I think it is important to understand IoC and how it changes how you have to write your code (vs sequential code - like a command line program) and how computation progresses through your program: http://en.wikipedia.org/wiki/Inversion_of_control The thesis for the continuation based web frameworks (Seaside, Uncommon Web, Weblocks, ...) then is that they allow you to 're-invert' the IoC and start writing (what looks like) simple sequential code again: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.2753&rep=rep1&type=pdf There are other uses for Continuations - but they're often described as a tool that allows you to invent/create your own control structures (like: for, while, catch, throw, etc), including ones that allow a non-linear flow to be written as if it was... -- Twitter: @kyleburton Blog: http://asymmetrical-view.com/ Fun: http://snapclean.me/