Pure and Impure Function in Java

Functions or methods can be classified into two categories:

  1. Pure Functions
  2. Impure Functions

Pure Functions :

The functions that return a value when it is invoked.

public int factorial(int a){ //Highlighted Part is first int

int i; f=1; for(i=1;i<=a;i++)  f=f*i; return f; //Highlighted Part

}

Impure Functions :

The functions that do not return a value when it is invoked.

public void factorial(int a)//Highlighted Part is void{
int i;
f=1;
for(i=1;i<=a;i++)
 f=f*i;

System.out.println(f);//Highlighted Part }

Here you can observe through the highlighted part that both the functions are doing the same task but the upper one is pure as it is returning the value of f whereas the lower one is not returning anything but simply printing the value of f.

Also, there exist two distinct ways of passing values to a function:
-Pass By Reference

-Pass By Value

 

Pure and Impure Function in Java