From: utzoo!decvax!harpo!npoiv!hou5f!hou5b!hou5c!hou5e!mat
Newsgroups: net.lang
Title: Re: Difficulty of recursion
Article-I.D.: hou5e.301
Posted: Tue Mar 22 15:33:08 1983
Received: Wed Mar 23 06:23:39 1983
References: iwlc7.146

There have been arguments posted to the effect that recursion is/is not
a natural way to program, and an easy way to learn to program.

Here is the revalation:

	Recursion is a natural way to program solutions to problems
	whose structures are easily defined recursively.

	Problems which are more naturally iterative (single lists
	rather than trees) are probably more easily handled by iteration.

	Recursion CAN simplify problems; it can also confuse them.
	Handling the inductive aspect of recursion may be easy ONCE
	the principles are grasped.  To teach these principles to
	new programmers with a limited background in finite math, etc,
	AS AN INTRINSIC part of programming will very likely distract
	from many of the real difficulties involved.

	In short, if you are teaching a math major how to program,
	recursion will probably come easily.  If you are teaching it
	to a four--year--old, then if his programming skills are
	limited to moving turtles in interesting patterns, it doesn't
	matter too much, he will have plenty of time to learn the
	other parts of the art of programming.  If, however, you wish
	to teach someone how to program productively for a wide
	variety of problems, and that person does not already have
	a couple of potloads of problem solving skills at his disposal,
	you are going to have to start by working from things that
	HE (/SHE/IT) understands.
						Mark Terribile
						Duke of DeNet
						...!hou5e!mat