# Functional Programming - Function Types

Functions are of two types −

• Predefined functions
• User-defined functions

In this chapter, we will discuss in detail about functions.

## Predefined Functions

These are the functions that are built into Language to perform operations & are stored in the Standard Function Library.

For Example − ‘Strcat’ in C++ & ‘concat’ in Haskell are used to append the two strings, ‘strlen’ in C++ & ‘len’ in Python are used to calculate the string length.

### Program to print string length in C++

The following program shows how you can print the length of a string using C++ −

```#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

int main() {
char str[20] = "Hello World";
int len;
len = strlen(str);
cout<<"String length is: "<<len;
return 0;
}
```

It will produce the following output −

```String length is: 11
```

### Program to print string length in Python

The following program shows how to print the length of a string using Python, which is a functional programming language −

```str = "Hello World";
print("String length is: ", len(str))
```

It will produce the following output −

```('String length is: ', 11)
```

## User-defined Functions

User-defined functions are defined by the user to perform specific tasks. There are four different patterns to define a function −

• Functions with no argument and no return value
• Functions with no argument but a return value
• Functions with argument but no return value
• Functions with argument and a return value

### Functions with no argument and no return value

The following program shows how to define a function with no argument and no return value in C++

```#include <iostream>
using namespace std;

void function1() {
cout <<"Hello World";
}
int main() {
function1();
return 0;
}
```

It will produce the following output −

```Hello World
```

The following program shows how you can define a similar function (no argument and no return value) in Python

```def function1():
print ("Hello World")

function1()
```

It will produce the following output −

```Hello World
```

### Functions with no argument but a return value

The following program shows how to define a function with no argument but a return value in C++

```#include <iostream>
using namespace std;
string function1() {
return("Hello World");
}

int main() {
cout<<function1();
return 0;
}
```

It will produce the following output −

```Hello World
```

The following program shows how you can define a similar function (with no argument but a return value) in Python

```def function1():
return "Hello World"
res = function1()
print(res)
```

It will produce the following output −

```Hello World
```

### Functions with argument but no return value

The following program shows how to define a function with argument but no return value in C++

```#include <iostream>
using namespace std;
void function1(int x, int y) {
int c;
c = x+y;
cout<<"Sum is: "<<c;
}

int main() {
function1(4,5);
return 0;
}
```

It will produce the following output −

```Sum is: 9
```

The following program shows how you can define a similar function in Python

```def function1(x,y):
c = x + y
print("Sum is:",c)
function1(4,5)
```

It will produce the following output −

```('Sum is:', 9)
```

### Functions with argument and a return value

The following program shows how to define a function in C++ with no argument but a return value −

```#include <iostream>
using namespace std;
int function1(int x, int y) {
int c;
c = x + y;
return c;
}

int main() {
int res;
res = function1(4,5);
cout<<"Sum is: "<<res;
return 0;
}
```

It will produce the following output −

```Sum is: 9
```

The following program shows how to define a similar function (with argument and a return value) in Python

```def function1(x,y):
c = x + y
return c

res = function1(4,5)
print("Sum is ",res)
```

It will produce the following output −

```('Sum is ', 9)
```