archives

Why Did Symbolics Fail?

Lemonodor has the story, and the links, starting with Dan Weinreb's blog post. Yes, Dan Weinreb has a blog, so if you weren't paying attention, now is the time to check it out!

For me, the take home message is from Paul Graham: If the Lisp machines were so gratuitously, baroquely complex, I should really find the time to learn more about them...

Happy new year, everyone!

The worker/wrapper transformation

Andy Gill and Graham Hutton. The worker/wrapper transformation.

The worker/wrapper transformation is a technique for changing the type of a computation, usually with the aim of improving its performance. It has been used by compiler writers for many years, but the technique is little-known in the wider functional programming community, and has never been formalised. In this article we explain, formalise, and explore the generality of the worker/wrapper transformation. We also provide a systematic recipe for its use, and illustrate the power of this recipe using a range of examples.

While the basic idea behind the worker/wrapper transformation should be trivial to any programmer, this paper shows the added value that comes from formal analysis and the usefulness of the algebraic approach.

The paper may be slightly too long for those used to reading work of this type, but since all the examples are presented in detail it should be more accessible to newcomers than many other similar papers.