- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Haskell Program to Find Factorial of a Number Using Recursion

In Haskell, we Find Factorial of a Number Using Recursion by using recursion along with foldl and product function. In the first example we are going to use recursion along with base and recursive case and in the second example, we are going to use factorial n = foldl (*) 1 [1..n] function and third example, we are going to use factorial n = product [1..n] function.

## Algorithm

**Step 1**− The user defined recursive factorial function is defined as,

For example 1 & 2 −

factorial 0 = 1 factorial n = n * factorial (n-1).

For example 3 −

factorial n = foldl (*) 1 [1..n].

For example 4 −

factorial n = product [1..n].

**Step 2**− Program execution will be started from main function. The main() function has whole control of the program. It is written as main = do. In the main function, we test the factorial function by passing the number 5, which should output 120 (5*4*3*2*1).**Step 3**− The variable named, “num” is being initialized. It will hold the number whose factorial is to be computed.**Step 4**− The resultant factorial is printed to the console using ‘print’’ function, after the function is called.

## Example 1

In this example, we are going to see that how we can find the factorial of a number using recursion. This can be done by using user-defined recursive function.

factorial :: Integer -> Integer factorial 0 = 1 factorial n = n * factorial (n-1) main :: IO () main = do let num = 5 print (factorial num)

## Output

120

## Example 2

In this example, we are going to see that how we can find the factorial of a number using recursive case. The function factorial' takes an integer as input and returns the factorial of that number. The function uses a base case where if the input is 0, it returns 1. Otherwise, it calls itself with the input decremented by 1 and multiplies that result by the original input. The main function then assigns the value 5 to a variable num, and calls factorial' function with num as an argument and prints the result..

factorial' :: Integer -> Integer factorial' n | n == 0 = 1 | otherwise = n * factorial' (n-1) main :: IO () main = do let num = 5 print (factorial' num)

## Output

120

## Example 3

In this example, we are going to see that how we can find the factorial of a number using recursion. This can be done by using foldl function.

factorial :: Integer -> Integer factorial n = foldl (*) 1 [1..n] main :: IO () main = do let num = 5 print (factorial num)

## Output

120

## Example 4

In this example, we are going to see that how we can find the factorial of a number using recursion. This can be done by using product function.

factorial :: Integer -> Integer factorial n = product [1..n] main :: IO () main = do let num = 5 print (factorial num)

## Output

120

## Conclusion

In Haskell, to find the factorial of a number using recursion, we can use user-defined functions, or foldl and product functions.

- Related Articles
- C++ Program to Find Factorial of a Number using Recursion
- Java Program to Find Factorial of a Number Using Recursion
- Java program to find the factorial of a given number using recursion
- C++ program to Calculate Factorial of a Number Using Recursion
- Haskell Program to Find Sum of Digits of a Number using Recursion
- Write a Golang program to find the factorial of a given number (Using Recursion)
- Haskell Program to find the reverse of a given number using recursion
- Haskell Program To Find The Factorial Of A Positive Number
- Python Program to find the factorial of a number without recursion
- How to Find Factorial of Number Using Recursion in Python?
- Haskell Program to Find G.C.D Using Recursion
- Haskell Program to Find Sum of N Numbers Using Recursion
- Factorial program in Java using recursion.
- Haskell Program to find the given number is PRIME or not using recursion
- Write a C# program to calculate a factorial using recursion