You are on page 1of 2

Functional Programming is an important branch of computers science that Computer

Engineering and related students should research. Mathematical functions are the base of this
declarative programming paradigm, and it has its origins in Lambda calculation. Every program has an
input, a process, and an output. The process, for Functional Programming, is the mathematical function
used for. An important feature of the Functional Programming languages is that they don't allow
conditionals or loops statements (like If-Else), since these languages use directly functions or functional
calls. Therefore, Functional Programming, in contrast with imperative programming, cannot change the
value of a variable or previous calculations (i.e., do not produce secondary effects), allowing analyze and
predict easily the behavior of the program that is being developed.

Another feature of the Functional Programming languages, is they allows both eager evaluation
and lazy evaluation of the arguments on a function. An eager evaluation, any term that contains a failed
sub-term, results in a failed term; this implies that the program must perform a calculation for each
argument and thus verify its convergence. In the other hand, the lazy evaluations increase the program
efficiency avoiding unnecessary calculations when a term is being evaluated.

Some Functional Programming languages are: Python, Haskell, Lisp, Erlang, Scheme, Javascript, etc.

There are two types:

1. Pure Functional Languages: which supports only functional paradigms.


2. Impure Functional Languages: supports the functional paradigms and imperative
programming.

Functional Programming is the most programming-mode used at Schools and Universities, and
every student related with computer researching, in any moment of his career, has to program with a
Functional Programming language. Is a tool which allows students open their minds to abstraction and
the logical statements, giving them the knowledge and prepare them to have a better handling of others
programming languages, no matter if those are functional or imperative programming languages.

However, and despite the fact that its application is dedicated especially for academic reasons,
Functional Programming Languages are being used to develop commercial applications utilized on
industries or business. Such is the case of specialized softwares in statistics, mathematics and financial
analysis.

Are several advantages related with the use of Functional Programming languages. Specially,
they can be summarized as follows:

1. Absence of secondary effects, i.e., provide a bugs-free code.


2. Allows the state simulations (as the maintenance of the balance of bank accounts).
3. Supports nested functions
4. Provides efficiency and a high-level of reliability.
5. Through the Lazy Evaluation, debugging process are less problematic.
Also, it is important to mention that is possible to use the functional programming style in non-
functional programming languages.

This is a topic very interesting to research, because a software-developer do needs to handling


high-level functions if he wants that his program runs without bugs, and the only way to and the only
way to achieve it, is knowing how to use the logic of functions, especially those that do not admit errors.
As it has been said before, it is the universities and institutes that have been develop research regarding
the Functional Programming and this is the main motivation for a computer student be able to carry out
an investigation on this particular subject. Also, Functional Programming can be investigated at various
levels, depending on the interest of the researcher. That is, it is possible that a person is only interested
in knowing what Functional Programming is about and only focus on reading background information;
or how he/she can learn to code in languages that use this style of programming and focus his/her
researching to get enough knowledge and be able to devote to develop the required codes. Currently, it
is easier to find a large amount of information related to Functional Programming on the Internet, which
can be supported by textbooks, theses and previous research.

You might also like