Skip to main content
Article thumbnail
Location of Repository

Interactive Functional Programs: a Method and a Formal Semantics

By Simon Thompson


In this paper we present a model of interactive programs in a purely\ud functional style. We exploit lazy evaluation in the modelling of streams\ud as lazy lists. We show how programs may be constructed in an ad hoc\ud way, and then present a small set of interactions and combinators which\ud form the basis for a disciplined approach to writing such programs.\ud One of the difficulties of the ad hoc approach is that the way in which\ud input and output are interleaved by the functions can be unpredictable.\ud In the second half of the paper we use traces, i.e. partial histories of\ud behaviour, to explain the interleaving of input and output, and give a\ud formal explanation of our combinators. We argue that this justifies our\ud claim that the combinators have the intuitively expected behaviour, and\ud finally contrast our approach with another

Topics: QA76
Publisher: Computing Laboratory, University of Kent
Year: 1987
OAI identifier:

Suggested articles


  1. (1987). A logic for Miranda. Draft of a paper describing a logic in which to reason about Miranda programs. Based on PPΛ.,
  2. (1986). Applications of temporal logic to the specification and verification of reactive systems: a survey of current trends.
  3. (1985). Communicating Sequential Processes.
  4. (1986). FL language manual (preliminary version).
  5. (1987). Interactive functional programs.
  6. (1985). Miranda: a non-strict functional language with polymorphic types.
  7. (1987). Sacrificing simplicity for convenience: Where do you draw the line?
  8. (1984). The semantics of lazy (and industrious) evaluation.

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.