Crypto: an SML/NJ Cryptogram Encoder/Decoder, Intended as a Functional MVC Example


Crypto is an SML/NJ program for encoding and decoding simple cryptograms. In the main versions of the program, the decoding process is structured as a game. It runs under Linux/Unix/Mac OS X.

The program is intended as an example of how command-oriented programs may be structured in a functional model-view-controller style. It has a controller functor that is parameterized by a model (an encoding/decoding structure) and view (abstract user). There are three view structures provided:


Crypto's distribution, including its source and documentation, is available:


There is also a paper on the functional model-view-controller software architecture that is used in crypto's implementation: “A Functional Model-View-Controller Software Architecture for Command-oriented Programs” .

Alley Stoughton (