wren ng thornton <w...@freegeek.org> wrote in article <4993bbee.9070...@freegeek.org> in gmane.comp.lang.haskell.cafe: > It's ugly, but one option is to just reify your continuations as an ADT, > where there are constructors for each function and fields for each > variable that needs closing over. Serializing that ADT should be simple > (unless some of those functions are higher-order in which case you run > into the same problem of how to serialize the function arguments). In > GHC's STG machine this representation shouldn't have much overhead, > though it does require the developer to do the compiler's job.
FWIW, this idea is called defunctionalization (due to Reynolds), and it works for higher-order functions as well (because you can defunctionalize those function arguments in the same way). People in many fields put a lot of effort into turning their programs into state machines... -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig "Attending a mathematics lecture is like walking through a thunderstorm at night. Most of the time you are lost, wet and miserable but at rare intervals there is a flash of lightening and the whole countryside is lit up." - Tom Koerner _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe