Abstract
By definition, apartition of a list is a division of that list into nonempty contiguous segments. Many programming and operations research problems can be specified in terms of list partitions, and we present a hierarchy of theorems for deriving programs from such specifications. Throughout, reasoning is conducted in an equational style using the calculus for program synthesis developed by Bird and Meertens.
Similar content being viewed by others
References
R. Backhouse. An exploration of the Bird-Meertens formalism. Unpublished draft, Dept. of Comp. Science, Groningen University, The Netherlands, 1988.
R. Bellman.Dynamic Programming. Princeton University Press, N.J., 1957.
R.S. Bird, J. Gibbons, and G. Jones. Formal derivation of a pattern matching algorithm.Science of Computer Programming, 12(2):93–104, July 1989.
R.S. Bird. Transformational programming and the paragraph problem.Science of Computer Programming 6:159–189 (1986).
R.S. Bird. An introduction to the theory of lists. Technical Monograph PRG-56, Oxford University Computing Laboratory, Programming Research Group, October 1986. Also in: M. Broy, editor,Logic of Programming and Calculi of Discrete Design, NATO ASI Series 36, pages 3–42, Springer-Verlag, 1987.
R.S. Bird. A calculus of functions for program derivation. Technical Monograph PRG-64, Oxford University Computing Laboratory, Programming Research Group, December 1987. Also in:Research Topics in Functional Programming (Edited by D. Turner) Addison-Wesley 1987.
R.S. Bird. Lectures on constructive functional programming. inConstructive Methods in Computing Science (Edited by M. Broy) NATO ASI Series F vol 55, Springer-Verlag, 1989.
R.S. Bird. Small specification exercises. inBeauty is Our Business: A Birthday Salute to E. W. Dijkstra (Edited by W. Feijen, N. van Gasteren, D. Gries, and J. Misra) Springer-Verlag 1990
J.G. Ecker and M. Kupferschmid.Introduction to Operations Research. John Wiley & Sons, 1988. ISBN 0-471-88445-6.
Z. Galil and R. Giancarlo. Speeding up dynamic programming with applications to molecular biology.Theoretical Computer Science, 64(1):107–118, 1989.
D. Hirschberg and L. Larmore. The least weight subsequence problem.SIAM Journal of Computing, 16(4):628–638, August 1987.
A. Hartman and M. Rodeh. Optimal parsing of strings. In A. Apostolico and Z. Galil, editors,Combinatorial Algorithms on Words, pages 155–167. Springer-Verlag, 1985.
D.E. Knuth and M.F. Plass. Breaking paragraphs into lines.Software — Practice & Experience, pages 1119–1184, 1981.
G. Malcolm. Homomorphisms and promotability. In J.L.A. van de Snepscheut (editor)Mathematics of Program Construction. LNCS 375, pp335–347, 1989.
L.G.L.T. Meertens. Algorithmics-towards programming as a mathematical activity. In J.W. de Bakker, M. Hazewinkel, and J.K. Lenstra, editors,Mathematics and Computer Science, pages 289–334. CWI Symposium, North-Holland, 1986.
L.G.L.T. Meertens. First steps towards a theory of rose trees. Working paper 592 ROM-25, IFIP WG 2.1, 1988.
O. de Moor.Categories, Relations, and Dynamic Programming. D. Phil Thesis, Oxford University Computing Laboratory, Programming Research Group, 1992.
M. Spivey. A categorical approach to the theory of lists. In J.L.A. van de Snepscheut (editor)Mathematics of Program Construction. LNCS 375, pp399–408, 1989.
J.A. Storer and T.G. Szymanski. Data compression via textual substitution.Journal of the Association for Computing Machinery, 29(4):928–951, 1982.
R.A. Wagner. Common phrases and minimum-space text storage.Communications of the ACM, 16(3): 148–152, 1973.
N. Wirth.Algorithms+Data Structures=Programs. Prentice-Hall, 1976. ISBN 0-13-022418-9.
Author information
Authors and Affiliations
Additional information
Supported by a BP research studentship.
Rights and permissions
About this article
Cite this article
Bird, R.S., de Moor, O. List partitions. Formal Aspects of Computing 5, 61–78 (1993). https://doi.org/10.1007/BF01211316
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF01211316