Professor GRAHAM HUTTON graham.hutton@nottingham.ac.uk
Professor of Computer Science
We systematically develop a functional program that solves the countdown problem, a numbers game in which the aim is to construct arithmetic expressions satisfying certain constraints. Starting from a formal specification of the problem, we present a simple but inefficient program that solves the problem, and prove that this program is correct. We then use program fusion to calculate an equivalent but more efficient program, which is then further improved by exploiting arithmetic properties.
Journal Article Type | Article |
---|---|
Publication Date | Nov 1, 2002 |
Journal | Journal of Functional Programming |
Print ISSN | 0956-7968 |
Publisher | Cambridge University Press (CUP) |
Peer Reviewed | Peer Reviewed |
Volume | 12 |
Issue | 6 |
APA6 Citation | Hutton, G. (2002). The Countdown Problem. Journal of Functional Programming, 12(6), |
Copyright Statement | Copyright information regarding this work can be found at the following address: http://eprints.nottingh.../end_user_agreement.pdf |
countdown.pdf
(108 Kb)
PDF
Copyright Statement
Copyright information regarding this work can be found at the following address: http://eprints.nottingham.ac.uk/end_user_agreement.pdf
Call-by-need is clairvoyant call-by-value
(2019)
Journal Article
AutoBench: comparing the time performance of Haskell programs
(2018)
Conference Proceeding
Theorem proving for all: equational reasoning in Liquid Haskell (Functional Pearl)
(2018)
Conference Proceeding
Parametric polymorphism and operational improvement
(2018)
Conference Proceeding
Compiling a 50-year journey
(2017)
Journal Article
About Repository@Nottingham
Administrator e-mail: digital-library-support@nottingham.ac.uk
This application uses the following open-source libraries:
Apache License Version 2.0 (http://www.apache.org/licenses/)
Apache License Version 2.0 (http://www.apache.org/licenses/)
SIL OFL 1.1 (http://scripts.sil.org/OFL)
MIT License (http://opensource.org/licenses/mit-license.html)
CC BY 3.0 ( http://creativecommons.org/licenses/by/3.0/)