Hostname: page-component-848d4c4894-tn8tq Total loading time: 0 Render date: 2024-06-23T18:04:11.006Z Has data issue: false hasContentIssue false

The Bird Tree

Published online by Cambridge University Press:  14 September 2009

Computing Laboratory, University of Oxford, Wolfson Building, Parks Road, Oxford, OX1 3QD, England (e-mail:
Rights & Permissions [Opens in a new window]


Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Sadly, Richard Bird is stepping down as the editor of the ‘Functional Pearls’ column. As a farewell present, I would like to dedicate a tree to him. A woody plant is appropriate for at least two reasons: Richard has been preoccupied with trees in many of his pearls, and where else would you find a bird's nest? Actually, there is a lot of room for nests, as the tree is infinite. Figure 1 displays the first five levels. The Bird tree, whose nodes are labelled with rational numbers, enjoys several remarkable properties.

Functional Pearls
Copyright © Cambridge University Press 2009


Aigner, M. & Ziegler, G. M. (2004) Proofs from THE BOOK, 3rd edn.Springer-Verlag.CrossRefGoogle Scholar
Backhouse, R. & Ferreira, J. F. (2008) Recounting the rationals: Twice!, In The 9th International Conference on Mathematics of Program Construction (MPC '08), Audebaud, P. & Paulin-Mohring, C. (eds), Lecture Notes in Computer Science, vol. 5133. Springer, pp. 7991.CrossRefGoogle Scholar
Bird, R. S. (2006) Loopless functional algorithms. In The 8th International Conference on Mathematics of Program Construction (MPC '06), Uustalu, T. (ed.), Lecture Notes in Computer Science, vol. 4014. Springer, pp. 90114.CrossRefGoogle Scholar
Calkin, N. & Wilf, H. (2000) Recounting the rationals, Am. Math. Monthly, 107 (4): 360363.CrossRefGoogle Scholar
Dijkstra, E. W. (1976) EWD 570: An exercise for Dr. R. M. Burstall. In Selected Writings on Computing: A Personal Perspective, Dijkstra, E. W. Springer, pp. 215216. ISBN 0–387–90652–5.Google Scholar
Gibbons, J., Lester, D. & Bird, R. (2006) Functional pearl: Enumerating the rationals, J. Funct. Program., 16 (3): 281291.CrossRefGoogle Scholar
Graham, R. L., Knuth, D. E. & Patashnik, O. (1994) Concrete Mathematics, 2nd ed.Addison-Wesley.Google Scholar
Hinze, R. (2008) Functional pearl: Streams and unique fixed points. In Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming (ICFP '08), Thiemann, P. (ed.). ACM Press, pp. 189200.CrossRefGoogle Scholar
McBride, C. & Paterson, R. (2008) Functional pearl: Applicative programming with effects, J. Funct. Program., 18 (1): 113.CrossRefGoogle Scholar
Peyton Jones, S. (2003) Haskell 98 Language and Libraries. Cambridge University Press.Google Scholar
Rutten, J. (2003) Fundamental study: Behavioural differential equations: A coinductive calculus of streams, automata, and power series, Theoret. Comp. Sci., 308: 153.CrossRefGoogle Scholar
Sloane, N. J. A. (2009) The on-line encyclopedia of integer sequences [online]. Available at: (Accessed 17 July 2009).Google Scholar
Submit a response


No Discussions have been published for this article.