Ben Karel on 11 Oct 2011 08:07:59 -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 jumpsI see the paper mentions both Lambda Calculus and Pi Calculus. ÂI've
> (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.
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/