The essence of form abstraction

Formlets:

Abstraction is the cornerstone of high-level programming; HTML forms are the principal medium of web interaction. However, most web programming environments do not support abstraction of form com- ponents, leading to a lack of compositionality. Using a semantics based on idioms, we show how to support compositional form construction and give a convenient syntax.

Formlets are now also part of the PLT Web Server.
(via PLT)

Packed Binary Routines for PLT Scheme

Per Doug’s post:

I have implemented an equivalent of the Python pack/unpack functions in PLT Scheme. I needed it primarily to be able to (more easily) read binary data from other applications for analysis in PLT Scheme.

Here is what it does:

This module performs conversions between PLT Scheme values and C structs represented as PLT Scheme byte strings. It uses format strings (explained below) as compact descriptions of the layout of the C structs and the intended conversion to/from PLT Scheme values. This can be used in handling binary data stored in files or from network connections, among other sources.

Component Deployment with PLaneT

Here is a paper about how PLT Scheme’s package repository, PLanetT was designed. PLanetT is a the PLT Scheme equivalent of CPAN.

For the past two years we have been developing PLaneT, a package manager built in to PLT Schemes module system that simplifies program development by doing away with the distinction between installed and uninstalled packages. In this paper we explain how PLaneT works and the rationales behind our major design choices, focusing particularly on our decision to integrate PLaneT into PLT Scheme and the consequences that decision had for PLaneTs design. We also report our experience as PLaneT users and developers and describe what have emerged as PLaneTs biggest advantages an drawbacks.

(mentioned in this post PLT)

How to Design Worlds

Via PLT:

As some of you know, we have been working on a new way of writing interactive applications, such as games, using just pure functional programming. We call this the World style, and it is embodied in the world.ss Teachpack included in the DrScheme distribution.
In response to demand, we are creating extended materials on this style of programming:
http://world.cs.brown.edu/

Addendum: 26 October 2008
Some folks might find HTDW a little more interesting in that it is purely functional programming.

Sequencing in Scheme

When I was first learning about Functional Programming and Scheme, the idea that order-of-execution didn’t matter in purely functional programs, was “strange to me”, to put it nicely. When I first read about Scheme’s begin form, for example, I remember feeling satisfied that Scheme wasn’t totally insane as it had at least some way to force imperative execution (the fact that, at the time, I never considered how such a feature may be implemented using Scheme’s core constructs, I now consider to be both a ‘missed opportunity’ and ‘study flaw’, then again you could also call it ‘learning’). Nonetheless, much, much later, while reading LAMBDA: The Ultimate Imperative, I came upon page 5 on which the question of how we may model imperative constructs in languages based on lambda calculus (like Scheme, for example) was raised.
Continue reading “Sequencing in Scheme”