functionsscopingand abstraction the specification of findroot is an abstraction of all the possible implementations that meet the specification clients of findroot can assume that the implementation meets the specificationbut they should assume nothing more for exampleclients can assume that the call findroot( returns some value whose square is between and the value returned could be positive or negativeand even though is perfect square the value returned might not be or - recursion you may have heard of recursionand in all likelihood think of it as rather subtle programming technique that' an urban legend spread by computer scientists to make people think that we are smarter than we really are recursion is very important ideabut it' not so subtleand it is more than programming technique as descriptive method recursion is widely usedeven by people who would never dream of writing program consider part of the legal code of the united states defining the notion of "natural-borncitizen roughly speakingthe definition is as follows any child born inside the united states any child born in wedlock outside the united states both of whose parents are citizens of the as long as one parent has lived in the prior to the birth of the childand any child born in wedlock outside the united states one of whose parents is citizen who has lived at least five years in the prior to the birth of the childprovided that at least two of those years were after the citizen' fourteenth birthday the first part is simpleif you are born in the united statesyou are naturalborn citizen (such as barack obamaif you are not born in the then one has to decide if your parents are citizens (either natural born or naturalizedto determine if your parents are citizensyou might have to look at your grandparentsand so on in generala recursive definition is made up of two parts there is at least one base case that directly specifies the result for special case (case in the example above)and there is at least one recursive (inductivecase (cases and in the example abovethat defines the answer in terms of the answer to the question on some other inputtypically simpler version of the same problem