Recursion: Difference between revisions

Content deleted Content added
Add example image
Tags: Reverted Visual edit Mobile edit Mobile web edit
Undid revision 1263036308 by Outcome0970 (talk)
Tags: Undo Mobile edit Mobile web edit
Line 73:
Recursion is sometimes used humorously in computer science, programming, philosophy, or mathematics textbooks, generally by giving a [[circular definition]] or [[self-reference]], in which the putative recursive step does not get closer to a base case, but instead leads to an [[infinite regress]]. It is not unusual for such books to include a joke entry in their glossary along the lines of:
:Recursion, ''see Recursion''.<ref name=Hunter>{{cite book|last=Hunter|first=David|title=Essentials of Discrete Mathematics|year=2011|publisher=Jones and Bartlett|pages=494|url=https://books.google.com/books?id=kuwhTxCVovQC&q=recursion+joke|isbn=9781449604424}}</ref>
 
{{Plain image with caption|Recursive.svg|{{resizediv|An example of recursion found on an [[English Wikipedia]] article about recursion}}|upright=0.95|right|bottom}}
 
A variation is found on page 269 in the [[Back-of-the-book index|index]] of some editions of [[Brian Kernighan]] and [[Dennis Ritchie]]'s book ''[[The C Programming Language]]''; the index entry recursively references itself ("recursion 86, 139, 141, 182, 202, 269"). Early versions of this joke can be found in ''Let's talk Lisp'' by Laurent Siklóssy (published by Prentice Hall PTR on December 1, 1975, with a copyright date of 1976) and in ''Software Tools'' by Kernighan and Plauger (published by Addison-Wesley Professional on January 11, 1976). The joke also appears in ''The UNIX Programming Environment'' by Kernighan and Pike. It did not appear in the first edition of ''The C Programming Language''. The joke is part of the [[functional programming]] folklore and was already widespread in the functional programming community before the publication of the aforementioned books. <ref name="Grainger College">{{cite web |last1=Shaffer |first1=Eric |title=CS 173:Discrete Structures |url=https://courses.engr.illinois.edu/cs173/sp2009/Lectures/lect_19.pdf |publisher=University of Illinois at Urbana-Champaign |access-date=7 July 2023}}</ref> <ref name="Columbia University">{{cite web |title=Introduction to Computer Science and Programming in C; Session 8: September 25, 2008 |url=http://www.cs.columbia.edu/~bert/courses/1003/lecture8.pdf |publisher=Columbia University |access-date=7 July 2023}}</ref>