Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Designing and Using Combinators:
Designing and Using Combinators: The Essence of Functional
Programming
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.
Requirements
This course is worth 1 study credit for PhD students. To be awarded the
credit, you should complete the exercises (except perhaps for Part 2 of A Stream Processor Monad Transformer). You may solve
the exercises in pairs.