Conceptual structures for recursion
Consideration will be given to the perplexity students experience with recursive function definitions. Certain conceptual structures will be suggested, which might provide a path through the thicket. In particular, emphasis will be placed on decisions that a programmer makes during the course of designing a recursive definition. By drawing attention to these decisions — by classifying them and making them explicit — it is possible to delineate the kind of “space” within which creativity operates. To vivify this, a rudimentary taxonomy of recursive function definitions will be sketched here. It will be illustrated in a particular application area, involving a family of simple string-processing tasks. This will highlight two different kinds of structure: (i) classification of different tasks within the family, (ii) classification of different approaches to a single task. Some of the points to be raised are not specific to recursion; accordingly, connections will be drawn here and there with certain more general pedagogical themes promulgated by Peter Landin in recent years.
KeywordsAuxiliary Function Conceptual Structure Function Definition Recursive Call Functional Programming
Unable to display preview. Download preview PDF.
- 1.Bird, R. & Wadler, P.: Introduction to Functional Programming, Prentice Hall, 1988.Google Scholar
- 2.Bornat, R.: Programming From First Principles, Prentice Hall, 1986.Google Scholar
- 3.Burstall, R. & Darlington, J.: A Transformation System for Developing Recursive Programs, JACM 24 (1977).Google Scholar
- 4.Burton, C.T.P.: An Introduction to Functional Programming and Miranda, International Thomson Publishing, to appear January 1996.Google Scholar
- 5.Goldson, D., Hopkins, M., Reeves, S. & Bornat, R.: A Symbolic Calculator for Non-Strict Functional Programs, Computer Journal 37 (1994).Google Scholar