recursion don' think too hardthat' one of the central themes of this it' not often that you tell computer programmers not to think too hardbut this is one time when it is appropriate you need to read this if you have not written recursive functions before most computer science students start by learning to program in style called imperative programming this simply means that you are likely used to thinking about creating variablesstoring valuesand updating those values as program proceeds in this you are going to begin learning different style of programming called functional programming when you program in the functional styleyou think much more about the definition of what you are programming than how you are going to program it some say that writing recursive functions is declarative approach rather than an imperative approach you'll start to learn what that means for you very soon when you start to get good at writing recursive functions you'll be surprised how easy it can bepython programs are executed by an interpreter an interpreter is program that reads another program as its input and does what it says the python interpreterusually called pythonwas written in language called that program reads python program and does what the python program says to do in its statements an interpreter interprets program by running or executing what is written within it the interpreter interacts with the operating system of the computer to use the networkthe keyboardthe mousethe monitorthe hard driveand any other / device that it needs to complete the work that is described in the program it is interpreting the picture in fig shows you how all these pieces fit together in this we'll introduce you to scopethe run-time stackand the heap so you understand how the interpreter calls functions and where local variables are stored then we'll provide several examples of recursive functions so you can begin to see how they are written there will be number of recursive functions for you to practice writing and we'll apply recursion to drawing pictures as well one thing you will not do in the homework for this is write code that uses for loop or while loop if you find yourself trying to write code that uses either kind of loop you are trying to write function imperatively rather than functionally (cspringer international publishing switzerland lee and hubbarddata structures and algorithms with pythonundergraduate topics in computer sciencedoi -- this copy belongs to 'acha