[plt-scheme] slides src for ICFP talk (on delimited continuations)

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sun Oct 7 08:03:11 EDT 2007

Several people requested the source of the talk I gave last week, so
I've put it here, for now:

  http://www.cs.utah.edu/~mflatt/tmp/icfp07-talk-src.zip


Some caveats:

 1. You need the latest MrEd/Slideshow from SVN.

    At the MrEd level, there's a new `set-alpha' method on dc<%>, which
    I use for fade-in and fade-out animations. At the Slideshow level,
    there are new `slide' variants that accept a timeout for advancing
    the slide automatically. (Yes, Slideshow 4.0 will definitely use
    keyword arguments.)

 2. The implementation of animation amounts to a poor-man's FRP, I
    think.

    The animations are based on functions that each take a number and
    produce a pict; an animation is created by varying the input number
    from 0 (initial state) to 1 (ending state). A timeout is attached
    to each of the intermediate slides.

    Each animation is usually just one step in a larger sequence. For
    example, when showing the evaluation of an expression, an automatic
    animation corresponds to an individual reduction, and many such
    animations are chained together (with a manually advanced slide at
    each reduction step) for the overall evaluation. Such a sequence is
    implemented by a function that takes N numbers between [0,1] to
    produce a pict; the inputs all start at 0, and then each input goes
    from 0 to 1, in turn, for each little animation.

    I'm not sure what the implementation would look like using FrTime.
    I think it would look similar, but with better language support.
    (The FrTime variant of Slideshow isn't available at the moment, or
    I would have tried it for the talk.)

 3. The talk implementation is low-quality code.

    I cleaned it up a bit, and I added some implementation notes in
    "chain.ss", but it will be obvious that the code was written in a
    hurry.

    The most interesting part is the beginning of "chain.ss", which has
    some animation tools and combinators that will likely find their
    way into a library, eventually.

 4. Running the talk uses around 200 MB of RAM.

    There are 1028 individual slides, with a lot of redundant and data
    behind a lot of those slides. For my purposes, 200 MB was small
    enough.


Matthew



Posted on the users mailing list.