[Note added by Phil Wadler: 001 is a graphical, executable specification language that adopts (or reinvents) many ideas from functional programming, including assign-once semantics, type parameters, higher-order parameterization, and something quite similar to linear types (but invented earlier and independently of Girard's work). It is a clear example of functional programming in the real world.]
The 001 Tool Suite is a seamless systems engineering design-to-software development environment for automatically generating complete, ultra-reliable, software systems, models, and simulations, no matter what kind or size of the application. It is the best thing since sliced bread!
001 implements functional programming directly in the form of maps (having tree and network-like properties) of functions (FMaps) and, similarly, maps of types (TMaps) and is based on the formal modeling language 001AXES. All FMaps and TMaps are inherently integrated as system oriented objects (SOOs) and are ultimately defined in terms of three primitive control structures: a parent controls its children to have a dependent relationship, an independent relationship, or a decision making relationship. All variables are used exactly once and there is complete traceability from inputs to outputs. User defined structures and parameterized types allow for extraordinary levels of reuse resulting in very high levels of productivity and quality.
The technology was used very successfully at Citibank, AT&T, and for other commercial systems, demonstrating the potential for functional programming to produce very high quality systems very quickly. For more information about these and other projects contact Frank Middleton at Apogee Communications Technologies, Inc. Also see the 001 home page.