An elephant in Cairo is a term used in computer programming to describe a piece of data that matches the search criteria purposefully inserted at the end of a search space, in order to make sure the search algorithm terminates; it is a humorous example of a sentinel value. The term derives from a humorous essay circulated on the Internet that was published in Byte magazine on September 1989, describing how various professions would go about hunting elephants.[1]
Algorithm
When hunting elephants, the article describes programmers as following this algorithm:[1]
- Go to Africa.
- Start at the Cape of Good Hope.[notes 1]
- Work northward in an orderly manner, traversing the continent alternately east and west,
- During each traverse pass:
- Catch each animal seen.
- Compare each animal caught to a known elephant.
- Stop when a match is detected.
This algorithm has a bug, namely a bounds checking error: if no elephants are found, the programmer will continue northwards and end up in the Mediterranean sea, causing abnormal termination by drowning.
Thus experienced programmers modify the above algorithm by placing a known elephant in Cairo to ensure that the algorithm will terminate.[2] The modified algorithm is therefore as follows:
- Go to Africa.
- Put an elephant in Cairo.
- Start at the Cape of Good Hope.
- Work northward in an orderly manner, traversing the continent alternately east and west,
- During each traverse pass:
- Catch each animal seen.
- Compare each animal caught to a known elephant.
- Stop when a match is detected.
- If you are in Cairo, then there are no elephants in Africa (other than the one you placed there).
See also
Notes
- ^ The Cape of Good Hope has been traditionally believed to be Africa's southernmost point, but that is actually Cape Agulhas.
References
- ^ a b Olsen, Peter C. (September 1989), "Pachydermic Personnel Prediction", Stop Bit, Byte, p. 404
- ^ Steuben, Michael (1998). Twenty Years Before the Blackboard. Cambridge University Press. p. 62. ISBN 9780883855256.