DISCOVERING MATHEMATICS WITH MAPLEAn Interactive Exploration for Mathematicians, Engineers, and EconometriciansChapter 1. A Tour of Maple VWorksheet 1b. Variables and NamesIn this worksheet we shall continue our tour of Maple which was interrupted at the end of Worksheet 1a. There we saw how Maple treats numbers and we learned about the way in which Maple can be used as a sophisticated calculator. The present worksheet is about variables, or rather about Maple's use of variables, and about names for variables and other mathematical objects. An important point is the way in which values are assigned to these objects, and how Maple evaluates them. Further we shall briefly go over the principles of programming in the Maple language. Finally we shall see how we can save our work, or part of it, in a text file, a Maple file or a Maple worksheet.Symbolic ComputationsSo far we learned that, by nature, Maple does its calculations symbolically, and where integers and rational numbers are concerned, Maple performs exact arithmetic; numbers and results of calculations are converted to approximate decimal fractions only on explicit request of the user. Every rational number has a unique representation as an ordered pair of relatively prime integers. Because of uniqueness, one could think of this integer pair as the name of the rational number in question. Many irrational numbers also have 'names', like LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkmbXNxcnRHRiQ2Iy1JI21uR0YkNiRRIjJGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRidGMg==, ln(3), or sin(LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVElJnBpO0YnLyUnaXRhbGljR1EmZmFsc2VGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRidGMg==/8). When such numbers are involved in computational processes, Maple leaves them unevaluated, in other words, without changing their `names' into numerical values. As with rational numbers, Maple does exact arithmetic with such numbers. Moreover, Maple arithmetically manipulates these named irrational numbers in more or less the same way as it does ordinary numbers. Now, doing arithmetic with names is called 'symbolic computation'.Give the following Maple instruction (note the assignment symbol :=):PkkraXJyX251bWJlckc2IiomLCYtSSVzcXJ0RzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YkNiMiIikiIiIiIiNGLkYuLUkkc2luR0YkNiMsJEkjUGlHRiojRi5GLUYuJSFHBy means of the assignment symbol, the expression to the right of this symbol is assigned to the variable named irr_number. The value of irr_number is more than just the numerical value. The combination of symbols defining the number to the right of := is the value of the variable irr_number. Before going into the way in which Maple evaluates mathematical expressions in any detail, let us see how Maple handles irr_number in compound expressions. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2JS1JJm1mcmFjR0YkNigtRiM2JS1JI21uR0YkNiRRIjFGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJStleGVjdXRhYmxlR1EmZmFsc2VGJ0Y6LUYjNidGKy1GIzYkLUklbXN1cEdGJDYlLUkobWZlbmNlZEdGJDYkLUYjNiYtRiw2JVEraXJyX251bWJlckYnLyUnaXRhbGljR1EldHJ1ZUYnL0Y7USdpdGFsaWNGJy1JI21vR0YkNi1RKCZtaW51cztGJ0Y6LyUmZmVuY2VHRj8vJSpzZXBhcmF0b3JHRj8vJSlzdHJldGNoeUdGPy8lKnN5bW1ldHJpY0dGPy8lKGxhcmdlb3BHRj8vJS5tb3ZhYmxlbGltaXRzR0Y/LyUnYWNjZW50R0Y/LyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGYm8tRjI2KEY0LUYjNiVGTEY9RjovJS5saW5ldGhpY2tuZXNzR1EiMUYnLyUrZGVub21hbGlnbkdRJ2NlbnRlckYnLyUpbnVtYWxpZ25HRl5wLyUpYmV2ZWxsZWRHRj9GOkY6LUY3NiRRIjJGJ0Y6LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Y6RitGPUY6RmlvRlxwRl9wRmFwRj1GOkYrRj1GOg==JSFHApparently, Maple is unwilling to work out the square automatically. Of course Maple can undoubtedly evaluate this expression, but it makes good sense to refrain from actually carrying it out as the expanded form of a power expression might be much more complicated than its original power form. The converse could also be true, and that is the sensible reason for leaving it to us to indicate which expression has our preference. The following input instructs Maple to expand our square. Note that we use the percentage symbol (%) to refer to the preceding result - in earlier releases of Maple V the ditto-symbol (") was used instead of % with the same function.LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictRiw2JVEnbm9ybWFsRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEwJkFwcGx5RnVuY3Rpb247RicvRjpGNS8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQy8lKXN0cmV0Y2h5R0ZDLyUqc3ltbWV0cmljR0ZDLyUobGFyZ2VvcEdGQy8lLm1vdmFibGVsaW1pdHNHRkMvJSdhY2NlbnRHRkMvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZSLUkobWZlbmNlZEdGJDYkLUYjNiUtRiw2JVEiJUYnRjZGOS8lK2V4ZWN1dGFibGVHRkNGQEZARmduRkBGK0ZnbkZARitGZ25GQA==JSFHIt goes without saying that here the expanded form is much to be preferred over the unexpanded square expression. By the way, it is rather obvious that Maple does know how to handle symbolic expressions like LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkmbXNxcnRHRiQ2Iy1JI21uR0YkNiRRIjJGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRidGMg== in the course of a calculation. Just to make sure, click the right mouse button on the Maple output of the last two instructions and convert these symbolic expressions to their numerical values by choosing Approximate in the resulting menu. Verify that the numerical values are the same.
Also try the input:LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictRiw2JVEnZXhwYW5kRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEwJkFwcGx5RnVuY3Rpb247RicvRjpRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlMtSShtZmVuY2VkR0YkNiQtRiM2J0YrLUYjNiQtSSVtc3VwR0YkNiUtRlc2JC1GIzYmLUkjbW5HRiQ2JFEiMUYnRkAtRj02LVEiK0YnRkBGQkZFRkdGSUZLRk1GTy9GUlEsMC4yMjIyMjIyZW1GJy9GVUZmby1GLDYlUSJ4RidGNkY5RkBGQC1GX282JFEkMTM2RidGQC8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGQEYrLyUrZXhlY3V0YWJsZUdGREZARkBGYXBGQEYrRmFwRkBGK0ZhcEZAJSFHto convince yourself that it may be very useful to leave well alone and let simple power expressions be unexpanded. Leaving this kind of decision to the user is rather judicious. It makes sense to wipe the huge output from the screen. This can be done quickly by selecting the output and subsequently cutting it, or alternatively, by letting Maple act on the last input line again after replacing the semicolon by a colon. The procedures normal, simplify and expand are three most important and useful Maple commands. Applying normal to a Maple expression will give this expression its most natural or normal appearance, or rather, Maple will try to do this. So this command is especially useful for simplifying quotients of complicated expressions. It is however not always obvious what normal will do, because it is often unclear what the most natural form of a given expression should be. In order to see some examples of the use of normal, you should give the following instruction:LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictRiw2JVEoZXhhbXBsZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RMCZBcHBseUZ1bmN0aW9uO0YnL0Y6USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGRC8lKXN0cmV0Y2h5R0ZELyUqc3ltbWV0cmljR0ZELyUobGFyZ2VvcEdGRC8lLm1vdmFibGVsaW1pdHNHRkQvJSdhY2NlbnRHRkQvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZTLUkobWZlbmNlZEdGJDYkLUYjNidGKy1JI21zR0YkNiNGQUYrLyUrZXhlY3V0YWJsZUdGREZARkBGaG5GQEYrRmhuRkBGK0ZobkZALUkoZXhhbXBsZUc2IjYjUSdub3JtYWxGJA==JSFHThe simplify command behaves in a similar way. But the difference is that simplify also carries out simplifications of different types, like trigonometric or logarithmic simplification.The expand procedure distributes products over sums.LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictRiw2JVEoZXhhbXBsZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RMCZBcHBseUZ1bmN0aW9uO0YnL0Y6USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGRC8lKXN0cmV0Y2h5R0ZELyUqc3ltbWV0cmljR0ZELyUobGFyZ2VvcEdGRC8lLm1vdmFibGVsaW1pdHNHRkQvJSdhY2NlbnRHRkQvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZTLUkobWZlbmNlZEdGJDYkLUYjNidGKy1JI21zR0YkNiNRJ2V4cGFuZEYnRisvJStleGVjdXRhYmxlR0ZERkBGQEZpbkZARitGaW5GQEYrRmluRkA=LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbW9HRiQ2LVEkPz8/RicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y0LyUpc3RyZXRjaHlHRjQvJSpzeW1tZXRyaWNHRjQvJShsYXJnZW9wR0Y0LyUubW92YWJsZWxpbWl0c0dGNC8lJ2FjY2VudEdGNC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkMtSSNtaUdGJDYlUSdleHBhbmRGJy8lJ2l0YWxpY0dRJXRydWVGJy9GMFEnaXRhbGljRicvJStleGVjdXRhYmxlR0Y0Ri8=JSFHBy the way, the Maple command factor has the opposite effect of expand, in the sense that factor computes the factorization of a polynomial. Name-giving and Assigning Values to VariablesMaple allows names to be unlimited in size, they may contain letters, digits and most other symbols like the underscore _ , but spaces are not permitted. If for whatever reason spaces or other unusual symbols are required in a name, the entire name must be enclosed by left (or back) quotes (`). Further, a name should never begin with a digit, and some names are reserved by Maple for special purposes, and hence can not be used for anything else. Examples of such reserved and protected words are: expand, if, next, proc, quit, etc. If you try to use a protected name as a variable, Maple issues an error message. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNihGKy1GIzYnLUYsNiVRK2dpdmVuX25hbWVGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSN8Z3J8Z3JGJy9GPFEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkYvJSlzdHJldGNoeUdGRi8lKnN5bW1ldHJpY0dGRi8lKGxhcmdlb3BHRkYvJS5tb3ZhYmxlbGltaXRzR0ZGLyUnYWNjZW50R0ZGLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGVS1JI21uR0YkNiRRIjFGJ0ZCLyUrZXhlY3V0YWJsZUdGRkZCLUY/Ni1RIzo9RidGQkZERkdGSUZLRk1GT0ZRL0ZUUSwwLjI3Nzc3NzhlbUYnL0ZXRlxvLUZZNiRRIjVGJ0ZCRmZuRkJGK0ZmbkZCRitGZm5GQg==LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNihGKy1GIzYnLUYsNiVRLWBnaXZlbn5uYW1lYEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RI3xncnxnckYnL0Y8USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGRi8lKXN0cmV0Y2h5R0ZGLyUqc3ltbWV0cmljR0ZGLyUobGFyZ2VvcEdGRi8lLm1vdmFibGVsaW1pdHNHRkYvJSdhY2NlbnRHRkYvJSdsc3BhY2VHUSwwLjIyMjIyMjJlbUYnLyUncnNwYWNlR0ZVLUkjbW5HRiQ2JFEiMkYnRkIvJStleGVjdXRhYmxlR0ZGRkItRj82LVEjOj1GJ0ZCRkRGR0ZJRktGTUZPRlEvRlRRLDAuMjc3Nzc3OGVtRicvRldGXG8tSSZtc3FydEdGJDYjRlhGZm5GQkYrRmZuRkJGK0ZmbkZCLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNigtRiw2JVEnZXhwYW5kRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEjOj1GJy9GOlEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkQvJSlzdHJldGNoeUdGRC8lKnN5bW1ldHJpY0dGRC8lKGxhcmdlb3BHRkQvJS5tb3ZhYmxlbGltaXRzR0ZELyUnYWNjZW50R0ZELyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGUy1GIzYkLUklbXN1cEdGJDYlLUkobWZlbmNlZEdGJDYkLUYjNiYtRiw2JVEieEYnRjZGOS1GPTYtUSIrRidGQEZCRkVGR0ZJRktGTUZPL0ZSUSwwLjIyMjIyMjJlbUYnL0ZVRmFvLUYsNiVRInlGJ0Y2RjlGQEZALUkjbW5HRiQ2JFEiMkYnRkAvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRkBGKy8lK2V4ZWN1dGFibGVHRkRGQEYrRl1wRkBGK0ZdcEZALUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUkjbW9HRiQ2L1ElcHJvY0YnLyUlYm9sZEdRJXRydWVGJy8lLG1hdGh2YXJpYW50R1ElYm9sZEYnLyUrZm9udHdlaWdodEdGNC8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGOS8lKXN0cmV0Y2h5R0Y5LyUqc3ltbWV0cmljR0Y5LyUobGFyZ2VvcEdGOS8lLm1vdmFibGVsaW1pdHNHRjkvJSdhY2NlbnRHRjkvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZILUYsNi1RIn5GJy9GM1Enbm9ybWFsRidGN0Y6RjxGPkZARkJGREZGRkktRiw2LVEqJmNvbG9uZXE7RidGTkY3RjpGPEY+RkBGQkZEL0ZHUSwwLjI3Nzc3NzhlbUYnL0ZKRlQtSSNtbkdGJDYkUSIzRidGTkZLLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEidEYnLyUnaXRhbGljR0YxL0YzUSdpdGFsaWNGJy1GIzYlLUZXNiRRIjJGJ0ZORltvRl1vLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy8lK2V4ZWN1dGFibGVHRjlGTg==JSFHObserve the use of the double vertical (| |) in the first two names. This is known as the `concatenation' operator and is used by Maple to stick names (or rather strings of symbols) together. In the Maple language a name or variable, call it LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, does not need to be declared, and hence is never unassigned. If no numerical value or other mathematical expression is assigned to it, its own name serves as its (assigned) value. As soon as another value is assigned to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= the old value is abandoned and LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= takes on the new one. Note that we use the word value in a very broad sense: any number, mathematical expression, or string of symbols could be used for the value of a variable. This assigning process allows us to repeatedly alter the value of LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, and in order to empty LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= of any unwanted value, we reassign its own name to it, which is LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= again. Give the following instructions:QyQ+SSJ4RzYiLkYkIiIiPkkicEc2IiwqKiRJInhHRiQiIiQiIiIqJEYnIiIjISIjRidGKCEiJUYpJSFHClearly LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= has no other value than its own name, and to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= a certain cubic polynomial in LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= is assigned. Next we give LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= a different name, say LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, and subsequently LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= is given a numerical value. We then consider the effect these reassignments have on the polynomial LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=. Finally we let LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= refer to its own name again, and see what happens to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= as a result.Type after the prompt the following instructions. Don't forget to insert a semicolon between every two instructions, so that the order in which you have typed them is precisely the order in which they will be executed by Maple. Observe the right quotes placed around LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= in the fifth instruction. QyQ+SSJ4RzYiSSJ5R0YlIiIiQyRJInBHNiIiIiI=QyQ+SSJ5RzYiIiImIiIiQyRJInBHNiIiIiI=QyQ+SSJ4RzYiLkYkIiIiSSJwRzYiJSFH
[Update Note:
The <Shift>,<Enter> key combination allows you to put multiple inputs on separate lines for better readability.]A few words of explanation are in order. The variable LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= first gets the name LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, that is to say, LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= becomes a reference to the variable LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, and because Maple usually tries to carry out complete evaluation - no evaluation is done in the case of arrays (vectors or matrices) - the variable LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, pointing to a cubic polynomial in LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, now points to the same cubic polynomial in LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=. Next LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= gets the value 5 and the effect of complete evaluation (LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Ji1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEnJnJhcnI7RicvRjhRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZCLyUpc3RyZXRjaHlHRkIvJSpzeW1tZXRyaWNHRkIvJShsYXJnZW9wR0ZCLyUubW92YWJsZWxpbWl0c0dGQi8lJ2FjY2VudEdGQi8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlEtRiw2JVEieUYnRjRGN0Y+RitGPg== and LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Ji1GLDYlUSJ5RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEnJnJhcnI7RicvRjhRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZCLyUpc3RyZXRjaHlHRkIvJSpzeW1tZXRyaWNHRkIvJShsYXJnZW9wR0ZCLyUubW92YWJsZWxpbWl0c0dGQi8lJ2FjY2VudEdGQi8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlEtSSNtbkdGJDYkUSI1RidGPkY+RitGPg==) is that LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= becomes a reference to the cubic polynomial in which the variable LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= is replaced by 5, hence to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JC1JJW1zdXBHRiQ2JS1JI21uR0YkNiRRIjVGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRictRjU2JFEiM0YnRjgvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRjhGK0Y4 - 2 * LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JC1JJW1zdXBHRiQ2JS1JI21uR0YkNiRRIjVGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRictRjU2JFEiMkYnRjgvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRjhGK0Y4+ 3*5 - 4 = 86, to be precise. Finally, LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= is given back its own name and consequently LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= shows its true form again as a cubic polynomial in LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=. Right quotes enclosing an expression prevent evaluation of that expression.A mistake easily made is when a variable, say LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=, is meant to be used as a symbol - as in a polynomial expression - while it has slipped your mind that LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= still has a numerical value resulting from a previous calculation. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2I1EhRictRiM2JUYrLUYjNiYtSSZtZnJhY0dGJDYoLUYjNiMtSSNtb0dGJDYtUTAmRGlmZmVyZW50aWFsRDtGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkEvJSlzdHJldGNoeUdGQS8lKnN5bW1ldHJpY0dGQS8lKGxhcmdlb3BHRkEvJS5tb3ZhYmxlbGltaXRzR0ZBLyUnYWNjZW50R0ZBLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGUC1GIzYlRistRiM2JEY4LUYsNiVRInlGJy8lJ2l0YWxpY0dRJXRydWVGJy9GPVEnaXRhbGljRidGKy8lLmxpbmV0aGlja25lc3NHUSIxRicvJStkZW5vbWFsaWduR1EnY2VudGVyRicvJSludW1hbGlnbkdGXm8vJSliZXZlbGxlZEdGQS1GOTYtUTEmSW52aXNpYmxlVGltZXM7RidGPEY/RkJGREZGRkhGSkZMRk5GUS1GIzYlLUYsNiVRI2xuRicvRmVuRkFGPC1GOTYtUTAmQXBwbHlGdW5jdGlvbjtGJ0Y8Rj9GQkZERkZGSEZKRkxGTkZRLUkobWZlbmNlZEdGJDYkLUYjNiNGV0Y8RitGK0YrJSFHHere we try to differentiate ln(y) as a function of LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= and instead of the correct answer we get an error message (which incidentally does not deserve a prize for clarity). The reason is that LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= still has the numerical value 5, its last assigned value. But as soon as we assign to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= its own name again, no further obstruction is encountered.Check this by letting Maple execute the previous instruction once more, after having given its own name back to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic=. Thus LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNigtRiw2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIzo9RicvRjpRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlMtRiM2Jy1GPTYtUSInRidGQEZCRkVGR0ZJRktGTUZPL0ZSUSwwLjExMTExMTFlbUYnL0ZVUSYwLjBlbUYnRjNGWC8lK2V4ZWN1dGFibGVHRkRGQEYrRmluRkBGK0ZpbkZALUY9Ni1RIjtGJ0ZARkIvRkZGOEZHRklGS0ZNRk8vRlJGaG5GVEZpbkZALUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNigtSSZtZnJhY0dGJDYoLUYjNiUtSSNtb0dGJDYtUTAmRGlmZmVyZW50aWFsRDtGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkEvJSlzdHJldGNoeUdGQS8lKnN5bW1ldHJpY0dGQS8lKGxhcmdlb3BHRkEvJS5tb3ZhYmxlbGltaXRzR0ZBLyUnYWNjZW50R0ZBLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGUC8lK2V4ZWN1dGFibGVHRkFGPC1GIzYnRistRiM2JkY4LUYsNiVRInlGJy8lJ2l0YWxpY0dRJXRydWVGJy9GPVEnaXRhbGljRidGU0Y8RitGU0Y8LyUubGluZXRoaWNrbmVzc0dRIjFGJy8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGJy8lKW51bWFsaWduR0Zgby8lKWJldmVsbGVkR0ZBLUY5Ni1RMSZJbnZpc2libGVUaW1lcztGJ0Y8Rj9GQkZERkZGSEZKRkxGTkZRLUYjNictRiw2JVEjbG5GJy9GZ25GQUY8LUY5Ni1RMCZBcHBseUZ1bmN0aW9uO0YnRjxGP0ZCRkRGRkZIRkpGTEZORlEtSShtZmVuY2VkR0YkNiQtRiM2JUZZRlNGPEY8RlNGPEYrRlNGPEYrRlNGPEYrRlNGPA==JSFHWe should take care not to forget placing right quotes around the name of a variable when giving its own name back to it. Although LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= := LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= can do no harm, we have to be very careful with assignments like LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= := LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= + 1.Let us try this. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNigtRiw2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIzo9RicvRjpRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlMtRiM2JkYzLUY9Ni1RIitGJ0ZARkJGRUZHRklGS0ZNRk8vRlJRLDAuMjIyMjIyMmVtRicvRlVGZm4tSSNtbkdGJDYkUSIxRidGQEZARisvJStleGVjdXRhYmxlR0ZERkBGK0Zcb0ZARitGXG9GQA==JSFHA warning appears, because currently LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= does not have a numerical value and hence LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= is made to refer to an expression in which the name LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= itself occurs. This causes an infinite loop. Apart from problems of a strictly logical nature, Maple usually has trouble in coping with such recursive definitions. That a computer language like Pascal accepts assignments like LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= := LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= + 1 as syntactically correct is due to the fact that in Pascal a declared variable has a numerical value at all times, so that the assignment LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= := LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= + 1 simply adds 1 to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic='s current value. Now we wish to make certain that LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= has no other value than its own name. This process of emptying a variable is extremely practical and undoubtedly will be useful on many future occasions. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNigtRiw2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIzo9RicvRjpRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlMtRiM2Jy1GPTYtUSInRidGQEZCRkVGR0ZJRktGTUZPL0ZSUSwwLjExMTExMTFlbUYnL0ZVUSYwLjBlbUYnRjNGWC8lK2V4ZWN1dGFibGVHRkRGQEYrRmluRkBGK0ZpbkZARitGaW5GQA==JSFHYou can now try your hand at another example of a recursive definition in assignment1 of worksheet TourA1b.mw.Maple's Programming LanguageAt first glance Maple's programming language resembles Pascal in a number of ways. The important Pascal requirement of declaring all variables is obviously unnecessary in Maple as every Maple name or variable is automatically assigned its own name on introduction. The Maple language is a procedural language which means that a Maple program essentially is a collection of procedures. Most Maple commands are procedures themselves, which, as you should know by now, can be used interactively, but which can at any time be called from a Maple program as well. The Maple code for almost all Maple commands can be viewed on the screen. Exceptions are the built-in system functions such as evalf and some mathematical functions like diff. The following instruction produces the complete Maple code for the nextprime procedure:LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictRiw2JVEqaW50ZXJmYWNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEwJkFwcGx5RnVuY3Rpb247RicvRjpRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlMtSShtZmVuY2VkR0YkNiQtRiM2J0YrLUYjNictRiw2JVEsdmVyYm9zZXByb2NGJ0Y2RjktRj02LVEiPUYnRkBGQkZFRkdGSUZLRk1GTy9GUlEsMC4yNzc3Nzc4ZW1GJy9GVUZeby1JI21uR0YkNiRRIjJGJ0ZALyUrZXhlY3V0YWJsZUdGREZARitGZG9GQEZARmRvRkBGK0Zkb0ZALUY9Ni1RIjtGJ0ZARkIvRkZGOEZHRklGS0ZNRk9GUUZfb0Zkb0ZALUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictRiw2JVEmcHJpbnRGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUTAmQXBwbHlGdW5jdGlvbjtGJy9GOlEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkQvJSlzdHJldGNoeUdGRC8lKnN5bW1ldHJpY0dGRC8lKGxhcmdlb3BHRkQvJS5tb3ZhYmxlbGltaXRzR0ZELyUnYWNjZW50R0ZELyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGUy1JKG1mZW5jZWRHRiQ2JC1GIzYlLUYsNiVRKm5leHRwcmltZUYnRjZGOS8lK2V4ZWN1dGFibGVHRkRGQEZARmhuRkBGK0ZobkZARitGaG5GQA==JSFHThe value 2 for the interface parameter verboseproc forces the print command to print the entire body of the procedure on the screen. When verboseproc has its default value of 1 the print command only shows the abbreviation: proc()...end, including the relevant procedure parameters.A close look at the code reveals a number of control structures familiar to the Pascal adept, but slightly different from the Pascal format.Give the following instructions:LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNixGKy1GIzYtLUkjbW9HRiQ2L1EkZm9yRicvJSVib2xkR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSVib2xkRicvJStmb250d2VpZ2h0R0Y+LyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZDLyUpc3RyZXRjaHlHRkMvJSpzeW1tZXRyaWNHRkMvJShsYXJnZW9wR0ZDLyUubW92YWJsZWxpbWl0c0dGQy8lJ2FjY2VudEdGQy8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlItSSdtc3BhY2VHRiQ2Ji8lJ2hlaWdodEdRJjAuMGV4RicvJSZ3aWR0aEdRJjAuNWVtRicvJSZkZXB0aEdGWi8lKmxpbmVicmVha0dRJWF1dG9GJy1GLDYlUSJpRicvJSdpdGFsaWNHRjsvRj1RJ2l0YWxpY0YnRlUtRjY2L1EjdG9GJ0Y5RjxGP0ZBRkRGRkZIRkpGTEZORlBGU0ZVLUkjbW5HRiQ2JFEiNUYnL0Y9USdub3JtYWxGJ0ZVLUY2Ni9RI2RvRidGOUY8Rj9GQUZERkZGSEZKRkxGTkZQRlMvJStleGVjdXRhYmxlR0ZDRltwRistRlY2JkZYRmVuRmhuL0Zbb1E2aW5jcmVhc2VpbmRlbnRuZXdsaW5lRictRiM2Jy1GLDYlUSZwcmludEYnRmBvRmJvLUY2Ni1RMCZBcHBseUZ1bmN0aW9uO0YnRltwRkFGREZGRkhGSkZMRk5GUEZTLUkobWZlbmNlZEdGJDYkLUYjNidGKy1GIzYkLUklbXN1cEdGJDYlRl1vLUZobzYkUSIyRidGW3AvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRltwRitGYHBGW3BGW3BGYHBGW3BGKy1GVjYmRlhGZW5GaG4vRltvUTZkZWNyZWFzZWluZGVudG5ld2xpbmVGJy1GNjYvUSdlbmR+ZG9GJ0Y5RjxGP0ZBRkRGRkZIRkpGTEZORlBGU0ZgcEZbcEYrRmBwRltwRitGYHBGW3A=LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictRiw2JVEibkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIzo9RicvRjpRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlMtSSNtbkdGJDYkUSIxRidGQC8lK2V4ZWN1dGFibGVHRkRGQEYrRlpGQEYrRlpGQA==LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNixGKy1GIzYqLUkjbW9HRiQ2L1Emd2hpbGVGJy8lJWJvbGRHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJWJvbGRGJy8lK2ZvbnR3ZWlnaHRHRj4vJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkMvJSlzdHJldGNoeUdGQy8lKnN5bW1ldHJpY0dGQy8lKGxhcmdlb3BHRkMvJS5tb3ZhYmxlbGltaXRzR0ZDLyUnYWNjZW50R0ZDLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGUi1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR1EmMC41ZW1GJy8lJmRlcHRoR0ZaLyUqbGluZWJyZWFrR1ElYXV0b0YnLUYjNihGKy1GIzYkLUklbXN1cEdGJDYlLUYsNiVRIm5GJy8lJ2l0YWxpY0dGOy9GPVEnaXRhbGljRictSSNtbkdGJDYkUSIzRicvRj1RJ25vcm1hbEYnLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0ZfcC1GNjYtUSUmbGU7RidGX3BGQUZERkZGSEZKRkxGTi9GUVEsMC4yNzc3Nzc4ZW1GJy9GVEZocC1GXHA2JFEkMTAwRidGX3AvJStleGVjdXRhYmxlR0ZDRl9wRitGVS1GNjYvUSNkb0YnRjlGPEY/RkFGREZGRkhGSkZMRk5GUEZTRl1xRl9wRistRlY2JkZYRmVuRmhuL0Zbb1E2aW5jcmVhc2VpbmRlbnRuZXdsaW5lRictRiM2KEZkby1GNjYtUSM6PUYnRl9wRkFGREZGRkhGSkZMRk5GZ3BGaXAtRiM2JkZkby1GNjYtUSIrRidGX3BGQUZERkZGSEZKRkxGTi9GUVEsMC4yMjIyMjIyZW1GJy9GVEZhci1GXHA2JFEiMUYnRl9wRl9wRitGXXFGX3BGKy1GVjYmRlhGZW5GaG4vRltvUTZkZWNyZWFzZWluZGVudG5ld2xpbmVGJy1GNjYvUSdlbmR+ZG9GJ0Y5RjxGP0ZBRkRGRkZIRkpGTEZORlBGU0ZdcUZfcEYrRl1xRl9wRitGXXFGX3A=LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNihGKy1GIzYnLUkjbW9HRiQ2LVEiJ0YnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPi8lKXN0cmV0Y2h5R0Y+LyUqc3ltbWV0cmljR0Y+LyUobGFyZ2VvcEdGPi8lLm1vdmFibGVsaW1pdHNHRj4vJSdhY2NlbnRHRj4vJSdsc3BhY2VHUSwwLjExMTExMTFlbUYnLyUncnNwYWNlR1EmMC4wZW1GJy1GLDYlUSJuRicvJSdpdGFsaWNHUSV0cnVlRicvRjpRJ2l0YWxpY0YnRjUvJStleGVjdXRhYmxlR0Y+RjktRjY2LVEiPUYnRjlGPEY/RkFGQ0ZFRkdGSS9GTFEsMC4yNzc3Nzc4ZW1GJy9GT0ZpbkZRRllGOUYrRllGOUYrRllGOQ==LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNigtRiw2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIzo9RicvRjpRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlMtRiM2KEYrLUYjNictRiw2JVElcmFuZEYnRjZGOS1GPTYtUTAmQXBwbHlGdW5jdGlvbjtGJ0ZARkJGRUZHRklGS0ZNRk8vRlJRJjAuMGVtRicvRlVGW28tSShtZmVuY2VkR0YkNiQtRiM2J0YrLUYjNictSSNtbkdGJDYkUSIxRidGQC1GPTYtUSMuLkYnRkBGQkZFRkdGSUZLRk1GTy9GUlEsMC4yMjIyMjIyZW1GJ0Zcby1GZW82JFEkMTAwRidGQC8lK2V4ZWN1dGFibGVHRkRGQEYrRmBwRkBGQEZgcEZARmduLUZebzYkLUYjNiVGK0ZgcEZARkBGYHBGQEYrRmBwRkBGK0ZgcEZARitGYHBGQA==LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNilGKy1GIzYvLUkjbW9HRiQ2L1EjaWZGJy8lJWJvbGRHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJWJvbGRGJy8lK2ZvbnR3ZWlnaHRHRj4vJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkMvJSlzdHJldGNoeUdGQy8lKnN5bW1ldHJpY0dGQy8lKGxhcmdlb3BHRkMvJS5tb3ZhYmxlbGltaXRzR0ZDLyUnYWNjZW50R0ZDLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGUi1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR1EmMC41ZW1GJy8lJmRlcHRoR0ZaLyUqbGluZWJyZWFrR1ElYXV0b0YnLUYjNictRiw2JVEoaXNwcmltZUYnLyUnaXRhbGljR0Y7L0Y9USdpdGFsaWNGJy1GNjYtUTAmQXBwbHlGdW5jdGlvbjtGJy9GPVEnbm9ybWFsRidGQUZERkZGSEZKRkxGTkZQRlMtSShtZmVuY2VkR0YkNiQtRiM2JS1GLDYlUSJwRidGYm9GZG8vJStleGVjdXRhYmxlR0ZDRmlvRmlvRmNwRmlvRitGVS1GNjYvUSV0aGVuRidGOUY8Rj9GQUZERkZGSEZKRkxGTkZQRlMtRlY2JkZYRmVuRmhuL0Zbb1E2aW5jcmVhc2VpbmRlbnRuZXdsaW5lRictRiM2J0ZgcC1GNjYtUSI9RidGaW9GQUZERkZGSEZKRkxGTi9GUVEsMC4yNzc3Nzc4ZW1GJy9GVEZicS1GLDYlUSZwcmltZUYnRmJvRmRvRmNwRmlvRistRlY2JkZYRmVuRmhuL0Zbb1E2ZGVjcmVhc2VpbmRlbnRuZXdsaW5lRidGK0ZjcEZpb0YrLUYjNiotRjY2L1ElZWxzZUYnRjlGPEY/RkFGREZGRkhGSkZMRk5GUEZTRmhwLUYjNidGYHBGXnEtRiw2JVEqY29tcG9zaXRlRidGYm9GZG9GY3BGaW9GK0ZncUYrRmNwRmlvLUY2Ni9RJ2VuZH5pZkYnRjlGPEY/RkFGREZGRkhGSkZMRk5GUEZTRmNwRmlvRitGY3BGaW9GK0ZjcEZpbw==JSFHThe first two control structures are examples of repetitions, and the third is an example of a choice structure. The first input group contains a for-loop which prints five squares (numbers, not square boxes) on the screen. Further, the structure of the second group is a while-loop which determines the smallest positive integer LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEibkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= for which LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JC1JJW1zdXBHRiQ2JS1GLDYlUSJuRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW5HRiQ2JFEiM0YnL0Y7USdub3JtYWxGJy8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGQUYrRkE= > 100. Finally, the third group chooses a random number between 1 and 100 and decides whether this number is prime or composite.Now have a go at completing assignment 2 of worksheet TourA1b.mw, requiring the use of a for-loop and a choice structure.Creating Your Own ProceduresIt is very easy to create your own procedures. These remain available until quitting the Maple session. As an example consider the following procedure which arranges a pair of numbers in increasing order:LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZGLUkjbWlHRiQ2JVExc21hbGxlc3RfbGFyZ2VzdEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RKiZjb2xvbmVxO0YnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZMLUknbXNwYWNlR0YkNiYvJSdoZWlnaHRHUSYwLjBleEYnLyUmd2lkdGhHUSYwLjBlbUYnLyUmZGVwdGhHRlQvJSpsaW5lYnJlYWtHUShuZXdsaW5lRictRlA2JkZSRlVGWC9GZW5RJWF1dG9GJy1GNjYvUSVwcm9jRicvJSVib2xkR0YxL0YzUSVib2xkRicvJStmb250d2VpZ2h0R0Zhb0Y7Rj5GQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZORmVvLUkobWZlbmNlZEdGJDYkLUYjNictRiw2JVEiYUYnRi9GMi1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIRmRvL0ZOUSwwLjMzMzMzMzNlbUYnLUYsNiVRImJGJ0YvRjIvJStleGVjdXRhYmxlR0Y9RjlGOS1GNjYtUSJ+RidGOUY7Rj5GQEZCRkRGRkZIRmRvRmZvRk9GZ24tRjY2L1EjaWZGJ0Zeb0Zgb0Zib0Y7Rj5GQEZCRkRGRkZIRmRvRmZvRmpwRlxwLUY2Ni1RIjxGJ0Y5RjtGPkZARkJGREZGRkhGSkZNRmVwRmpwLUY2Ni9RJXRoZW5GJ0Zeb0Zgb0Zib0Y7Rj5GQEZCRkRGRkZIRmRvRmZvRmpwRlxwRl9wRmVwRmpwLUY2Ni9RJWVsc2VGJ0Zeb0Zgb0Zib0Y7Rj5GQEZCRkRGRkZIRmRvRmZvRmpwRmVwRl9wRlxwRmpwLUY2Ni9RJGVuZEYnRl5vRmBvRmJvRjtGPkZARkJGREZGRkhGZG9GZm9GanBGXXFGanBGT0ZnbkZpcUZocEY5JSFHLUkxc21hbGxlc3RfbGFyZ2VzdEc2IjYkIiQ/IiIjWA==JSFHRecursive procedures are possible, but should be treated with the utmost care. For instance, it makes good sense to always use the option remember in such procedures. This takes care of the storing of values calculated by the procedure in a so-called remember table so that repetitive recalculation of values can be avoided.An example of a number sequence usually defined recursively is the well-known Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... and so on. PkkkRmliRzYiZio2I0kibkdGJEYkNiNJKXJlbWVtYmVyR0YkRiRAJTE5JCIiIkYsLCYtRiM2IywmRixGLSEiIkYtRi0tRiM2IywmRixGLSEiI0YtRi1GJEYkRiQ=QyQtSSRGaWJHNiI2IyIjNSIiIg==QyQtSSRGaWJHNiI2IyIjXSIiIg==QyQtSSRGaWJHNiI2IyIkKyIiIiI=LUkkRmliRzYiNiMiJF0iJSFHThe rapid growth of the sequence's elements is evident. Without the option remember Maple would not have been able to compute these large values of the Fib procedure.The following procedure Fib2 also verifies that the argument has the correct type which is integer (type-checking), any other type is not allowed.PkklRmliMkc2ImYqNiNJIm5HRiRGJEYkRiRAJzQtSSV0eXBlRyUqcHJvdGVjdGVkRzYkOSRJKGludGVnZXJHRiwtSSZFUlJPUkdGLDYjSUFGaXJzdH5hcmd1bWVudH5pc35ub3R+YW5+aW50ZWdlckdGJDFGLiIiIkYuLCYtRiM2IywmRi5GNSEiIkY1RjUtSSRGaWJHRiQ2IywmRi5GNSEiI0Y1RjVGJEYkRiQ=LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVElRmliMkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2JC1GIzYjLUkjbW5HRiQ2JFEkMS41RicvRjNRJ25vcm1hbEYnRj4=A quicker way to achieve this is by checking the argument's type right away in the heading of the procedure, as in Fib3 := proc(n::integer)if n <= 1 then n else Fib3(n-1) + Fib3(n-2)fi end;PkklRmliM0c2ImYqNiMnSSJuR0YkSShpbnRlZ2VyRyUqcHJvdGVjdGVkR0YkRiRGJEAlMTkkIiIiRi0sJi1GIzYjLCZGLUYuISIiRi5GLi1GIzYjLCZGLUYuISIjRi5GLkYkRiRGJA==JSFHThe 'if-then-else' structure is then superfluous. Check the warning Maple gives when the argument LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEibkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= is not an integer. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2I1EhRictRiM2JUYrLUYjNiUtRiw2JVElRmliM0YnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RMCZBcHBseUZ1bmN0aW9uO0YnL0Y6USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGRC8lKXN0cmV0Y2h5R0ZELyUqc3ltbWV0cmljR0ZELyUobGFyZ2VvcEdGRC8lLm1vdmFibGVsaW1pdHNHRkQvJSdhY2NlbnRHRkQvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZTLUkobWZlbmNlZEdGJDYkLUYjNiMtSSNtbkdGJDYkUSQyLjVGJ0ZARkBGK0YrJSFHThe final assignment 3 of worksheet TourA1b.mw is about type-checking.Saving Your Work to a FileWhen saving a worksheet to a file, we usually choose the Maple worksheet format (extension .mw). This is the default used by Maple; it is an ASCII file containing input, output, graphics and text regions and it can be opened again at any time. On the other hand we may wish to export the worksheet as a human readable text file (extension .txt), or as a LaTeX file (extension .tex). Sometimes we do not want to save the entire Maple session into a file, but only one or two objects such as specific procedures or variables. In that case the save command can be used. Give the following instruction (note the unix-like forward slashes /; one can also use double backward slashes \134\134):QjYlSStpcnJfbnVtYmVyRzYiSSJwRzYiSTtjOi90ZW1wL21hcGxlL3Rlc3RmaWxlLm1wbEc2Ig==JSFHJSFHThe variable irr_number and the polynomial LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= are now saved in the file named testfile.mpl. This file is human readable (use WordPad), but also Maple can read from it. Had we used the extension .m in the file's name, then Maple would have written the file in internal Maple format, which is not readable to us. The advantage of such an .m file is that Maple can read it into a Maple session really fast. Maple's read command can be used to read the (values of the) variables irr_number and LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy9GM1Enbm9ybWFsRic= from testfile.mpl into any future Maple session. QUk7YzovdGVtcC9tYXBsZS90ZXN0ZmlsZS5tcGxHNiI=JSFHJSFHIf no specific variable names but only the file's name is used in the save command, then the entire contents of the worksheet is saved into this file, including all procedures read with with() or readlib(). Sometimes we prefer to use our own familiar editor or text processor to create an ASCII file of Maple instructions with lines of commentary to be read into a Maple session at a later stage. When reading such a file into a Maple session with the read command, Maple immediately executes all input instructions and prints the resulting output to the screen. Observe that Maple can only read proper Maple instructions, i.e. lines beginning with the Maple prompt >, text regions cause read errors. Comments, inserted on an input line and preceded by a sharp (#) are ignored. Input lines read by Maple normally remain invisible. If the command interface(echo = 2); is given before the reading process is started, then input and comments are also printed to the screen, thus giving the impression that the material read from the file is a regular part of the current Maple session. The interface procedure regulates the format of the output, in particular the amount and the shape of output visible on the screen. The default value of the interface parameter echo is 1.This completes worksheet TourW1b.mw.