Abstract
Functional programming is a good idea, but we haven't got it quite right yet. What we have been doing up to now is weak (or partial) functional programming. What we should be doing is strong (or total) functional programming — in which all computations terminate. We propose an elementary discipline of strong functional programming. A key feature of the discipline is that we introduce a type distinction between data, which is known to be finite, and codata, which is (potentially) infinite.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
R. S. Bird, P. Wadler “Introduction to Functional Programming”, Prentice Hall, 1988.
K. Gödel “On a hitherto unutilized extension of the finitary standpoint”, Dialectica 12, pp 280–287 (1958).
R. Harper, D. MacQueen, R. Milner “Standard ML”, University of Edinburgh LFCS Report 86-2, 1986.
Paul Hudak et al. “Report on the Programming Language Haskell”, SIGPLAN Notices, vol 27, no 5 (May 1992).
A. M. Pitt “A Co-induction Principle for Recursively Defined Domains”, Theoretical Computer Science, vol 124, 1994.
Colin Runciman “What about the Natural Numbers”, Computer Languages vol 14, no 3, pp 181–191, 1989.
S. J. Thompson “A Logic for Miranda”, Formal Aspects of Computing, vol 1, no 4, pp 339–365, 1989.
D. A. Turner “Functional Programming and Proofs of Program Correctness” in Tools and Notions for Program Construction, pp 187–209, Cambridge University Press, 1982 (ed. Néel).
D. A. Turner “Miranda: A non-strict functional language with polymorphic types” Proceedings IFIP International Conference on Functional Programming Languages and Computer Architecture, Nancy, France, September 1985 (LNCS, vol 201).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Turner, D.A. (1995). Elementary strong functional programming. In: Hartel, P.H., Plasmeijer, R. (eds) Funtional Programming Languages in Education. FPLE 1995. Lecture Notes in Computer Science, vol 1022. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60675-0_35
Download citation
DOI: https://doi.org/10.1007/3-540-60675-0_35
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60675-8
Online ISBN: 978-3-540-49252-8
eBook Packages: Springer Book Archive