Recursion is defined as a function that calls itself.
It is a fundamental concept in mathematics and computing. It offers a different alternative of implementing repeating structures (loops), where modules are made recursive calls.
It is the systematization of the performance of the same process repeatedly, over and over again, until a result is obtained.
It can be used in any situation in which the solution can be expressed as a sequence of movements, steps or transformations governed by a set of unambiguous rules.
The object of a function calling itself is to…
Object Oriented Programming (OOP) is a programming paradigm in which the relevant real world concepts for solving a problem are modeled through classes and objects; and under this concept, the programs consist of a series of interactions between these objects.
To understand this paradigm we first have to understand what is a class and what is an object. An object is an entity that groups together a related state and functionality. The state of the object is defined through variables called attributes, while the functionality is modeled through functions that are known by the name of object methods.
An example…
If you are a developer, you will reuse code created by you or provided by others. In programming, a library is a collection of precompiled pieces of code that programs can reuse. Libraries simplify life for programmers by providing a collection of resources such as subroutines / functions, classes, type values or specifications, data structures, etc., that make it more dynamic and easier to reuse code in the programs.
UNIX systems allow us to work with two types of libraries: Static library and Dnamic library.
Before we begin, let’s put ourselves in context … When developing computer programs, we quickly realize the benefits of code reuse!
We immediately visualized that it would be ideal to have a separate directory for the programs that contains all the functions and classes already compiled, to be used by different applications. Some of the enormous advantages would be for example:
1. Code reuse
2. Reduced compilation time
3. Reliable compiled code
All of this really becomes very relevant and obvious when executables are no longer trivial or small. As programs grow and are modified, enhancements, tweaks, and fixes are…