# 6. Functional Languages

These types of languages are mostly concerned with providing answer to problems purely through applying calculations to input data.

They do not change anything else other than the input data provided at that point in time. The technical term is that functional languages have no 'side effects' unlike procedural languages.

These calculations are called 'functions'. Hence the description 'functional language'.

These types of languages are used extensively in highly mathematical areas such as engineering and financial markets and even network engineering.

### Example 1: Mathematica

Mathematica is a powerful functional language to solve mathematical problems.

The following Mathematica statement calculates the root of the equation ex = x2 + 3, starting at the point x = -2.

In[2] := FindRoot(Exp[x] == x^2 + 3, (x, -2))

Mathematica has a clear syntax with which to write mathematical statements. In this case it is making use of a built-in function called 'FindRoot' and passing the relevant arguments into it.

### Example 2: LISP

Short for 'List Processing'. The first computers were used as pure calculation machines and so LISP was developed as an efficient way of coding calculations.

LISP is one of the oldest computer languages (1958) and it is still in use today. It specializes in carrying out calculations and operations across data stored as linked lists. This is called 'list processing'.

List processing means that the same calculation is carried out over a linked list. The list itself can be altered during program execution

LISP has been used for a long time in artificial intelligence applications for problems such as image processing.

Challenge see if you can find out one extra fact on this topic that we haven't already told you

Click on this link: List Processing