## When is a Functional Program Not a Functional Program? (1999)

Venue: | Proceedings of Fourth ACM SIGPLAN International Conference on Functional Programming |

Citations: | 19 - 7 self |

### BibTeX

@INPROCEEDINGS{Longley99whenis,

author = {John Longley},

title = {When is a Functional Program Not a Functional Program?},

booktitle = {Proceedings of Fourth ACM SIGPLAN International Conference on Functional Programming},

year = {1999},

pages = {1--7},

publisher = {ACM Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

In an impure functional language, there are programs whose behaviour is completely functional (in that they behave extensionally on inputs), but the functions they compute cannot be written in the purely functional fragment of the language. That is, the class of programs with functional behaviour is more expressive than the usual class of pure functional programs. In this paper we introduce this extended class of "functional" programs by means of examples in Standard ML, and explore what they might have to offer to programmers and language implementors. After reviewing some theoretical background, we present some examples of functions of the above kind, and discuss how they may be implemented. We then consider two possible programming applications for these functions: the implementation of a search algorithm, and an algorithm for exact real-number integration. We discuss the advantages and limitations of this style of programming relative to other approaches. We also consider the incr...

### Citations

605 |
The Definition of Standard ML (Revised
- Milner, Tofte, et al.
- 1997
(Show Context)
Citation Context ...increased scope for compiler optimizations that these functions would offer. 0 Introduction This paper is concerned with a rather surprising fact. In an impure functional language such as Standard ML =-=[6]-=-, there exist programs whose behaviour is completely functional --- in the sense that they can be modelled simply by a mathematical function from input-values to output-values---but the functions they... |

397 |
LCF considered as a programming language
- Plotkin
- 1977
(Show Context)
Citation Context ...These parallel operations are in some sense computable, but they are not implementable even in full ML. Both of the above notions have been widely known since the early work of Scott [10] and Plotkin =-=[9]-=-. The third class of computable functions--- the SR functions 2 ---has emerged more recently from work of Bucciarelli and Ehrhard [1, 2], van Oosten [7] and the present author [4]. The SR functions fo... |

52 |
Sequentiality and Strong Stability
- Bucciarelli, Ehrhard
- 1991
(Show Context)
Citation Context ...e been widely known since the early work of Scott [10] and Plotkin [9]. The third class of computable functions--- the SR functions 2 ---has emerged more recently from work of Bucciarelli and Ehrhard =-=[1, 2]-=-, van Oosten [7] and the present author [4]. The SR functions form a larger class than the PCF-computable functions, but they are nonetheless all expressible in an impure sequential language such as M... |

48 |
A type-theoretical alternative to ISWIM
- Scott
- 1993
(Show Context)
Citation Context ...xists functions. These parallel operations are in some sense computable, but they are not implementable even in full ML. Both of the above notions have been widely known since the early work of Scott =-=[10]-=- and Plotkin [9]. The third class of computable functions--- the SR functions 2 ---has emerged more recently from work of Bucciarelli and Ehrhard [1, 2], van Oosten [7] and the present author [4]. The... |

36 | The sequentially realizable functionals
- Longley
(Show Context)
Citation Context ... sequentially realizable (SR) functions---which intuitively contains the above function F and "all things like it". This class of functions was studied extensively from a theoretical point o=-=f view in [4]-=-. The purpose of the present paper is to consider these functions from a more practical standpoint, and to explore what they might have to offer to programmers and language implementors. The paper is ... |

27 | Stretching the Storage Manager: Weak Pointers and Stable Names in Haskell
- Jones, Marlow, et al.
- 2000
(Show Context)
Citation Context ...e used Standard ML for our examples, we believe that the main ideas would apply equally well to lazy functional languages such as Haskell [3] (at least if one allows non-standard extensions; see e.g. =-=[8]-=-). An ML source file containing the examples in this paper is available electronically via the author's home page [5]. Acknowledgements. I am grateful to Simon Peyton Jones for providing me with the i... |

23 | Lazy Functional Algorithms for Exact Real Functionals
- Simpson
- 1998
(Show Context)
Citation Context ...some sense represents a total function on the classical reals and not just on the computable ones, and we ought to It is worth comparing our approach with previous approaches to exact integration. In =-=[11]-=-, Simpson gives a lazy functional algorithm for integration using Berger's uniform modulus functional. Simpson's algorithm is particularly remarkable in that, unlike ours, it can be coded in just PCF ... |

22 | Projecting sequential algorithms on strongly stable functions
- Ehrhard
- 1996
(Show Context)
Citation Context ...e been widely known since the early work of Scott [10] and Plotkin [9]. The third class of computable functions--- the SR functions 2 ---has emerged more recently from work of Bucciarelli and Ehrhard =-=[1, 2]-=-, van Oosten [7] and the present author [4]. The SR functions form a larger class than the PCF-computable functions, but they are nonetheless all expressible in an impure sequential language such as M... |

21 | A combinatory algebra for sequential functionals of finite type
- Oosten
- 1997
(Show Context)
Citation Context ... since the early work of Scott [10] and Plotkin [9]. The third class of computable functions--- the SR functions 2 ---has emerged more recently from work of Bucciarelli and Ehrhard [1, 2], van Oosten =-=[7]-=- and the present author [4]. The SR functions form a larger class than the PCF-computable functions, but they are nonetheless all expressible in an impure sequential language such as ML. They admit a ... |