David Turner: "Elementary Strong Functional Programming", in R.Plasmeijer, P.Hartel, eds, First International Symposium on Functional Programming Languages in Education, Nijmegen, Netherlands, December 1995. Springer Lecture Notes in Computer Science, vol 1022:1-13, 1995.


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.

download paper PDF [155k]