A number of useful optimisations are enabled if we can determine when a value is accessed at most once. We extend the Hindley-Milner type system with uses, yielding a typeinferenc...
In functional programming, intermediate data structures are often used to “glue’) together small programs. Deforestation is a program transformation to remove these intermedia...
Game semantics is an unusual denotational semantics in that it captures the intensional (or algorithmic) and dynamical aspects of the computation. This makes it an ideal semantica...
We add functional continuations and prompts to a language with an ML-style type system. The operators signicantly extend and simplify the control operators in SML/NJ, and can be ...
Models of Memory Management Greg Morrisett Matthias Felleisen Robert Harper January 1995 CMU{CS{95{110 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Al...
J. Gregory Morrisett, Matthias Felleisen, Robert H...
Fold and unfold are general purpose functionals for processing and constructing lists. By using the categorical approach of modelling recursive datatypes as fixed points of funct...
In this paper we study the relationships between logic programming and functional programming, trying to answer the following basic question: to what extent is logic programming j...
This paper discusses the derivation of functional programs for grammar analysis problems, such as the Empty problem and the Reachable problem. Grammar analysis problems can be div...
Lenient languages, such as Id90, have been touted as among the best functional languages for massively parallel machines AHN88]. Lenient evaluation combines non-strict semantics w...