chalmers, A graduate course by John Hughes Combinator libraries, nowadays often called Domain Specific Embedded Languages, offer an easy way to provide a customised programming language for a particular application domain. Such a language can greatly simplify applications. The idea of a DSEL is not specific to Haskell, but Haskell is an excellent "host language" to embed a customised language in, and indeed, this approach to programming has a long history in the functional language community. DSELs can be a valuable tool for researchers, because they support "exploratory language design". A researcher can identify appropriate abstractions in the problem domain, and rapidly build a DESL that embodies them to experiment with. This course will explain the combinator library idea, give many examples and applications, and discuss design principles to help you invent your own. We will also discuss research projects in several areas, where a DSEL is a key enabling technology.
Paper in which we describe how an artificial chemistry on a planar graph easily generates islands of activity with barriers with much lower activity between them