# Working With Functions in FSharp

- 0
- 0
- 9986

**Introduction:** A function is a sub program, it groups code into a single unit and reduces the complexity of large
code. It provides a modular approach in the programming language.**
Defining Function: **In F#, a function is defined with the

**let**keyword. Syntax for a function definition is given below

Like, let add x y = x + y.

If the function is recursive, then the function
definition starts with **let rec** keyword. It's syntax is given below

**let rec function_name parameter_list = Function_body**

Like, rec fact x= function body

**Function Calling:** Write the following
code.

let
add a b = a + b

let sub a b = a
- b

let mul a b = a
* b

let div a b = a
/ b

let result
result1 result2 result3 result4 =

printfn "Addition : %i" result1

printfn "Substraction: %i" result2

printfn "Multiplication: %i" result3

printfn " Division: %i" result4

result (add 42 6) (sub 42 6) (mul 4 5) (div 10 2)

**Output:**

**Function with Returning Value:** We make a
function for adding two numbers in F# by writing the below code.

let
add x y=x + y

let result=add 5
5

printfn "%d" result

Here, add is the name of a function with two parameter
x and y. It is a simple example of a function for addition of two numbers. A function
is called by specifying its parameter with the function name as **" add 5 5 "**
and its value is assigned to result. The output will look like the below
figure.

**Recursive Function: **A recursive function is a function which makes calls to itself.
The function calls itself within its definition. In F#, the declaration of a recursive function begins with the rec keyword after the let keyword. Now we will make a recursion
function to calculate a factorial. We write the following code

let rec fact x= if
x<=1 then 1 else
x*fact(x-1)

let result= fact
5

printfn "factorial : %d" result

The output will
look like the following figure.

**Anonymous Functions: **When there is no need to give a name to a function, we declare the function with the fun keyword. This type of function is also known as
lambda function or lambdas. In this type of function, argument list and function
body is separated by the token ->.
We write the following code

let x = (fun
x y -> x + y) 5 7

printfn "%d" x

The output will
look like the following figure.

## Trending up

- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10