- 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 Generate Multiplication Table

In this tutorial, we discuss writing a program to generate a multiplication table in the Haskell programming language.

## Example

Multiplication table of 12 up to 10 is

12 * 1 = 12 12 * 2 = 24 12 * 3 = 36 12 * 4 = 48 12 * 5 = 60 12 * 6 = 72 12 * 7 = 84 12 * 8 = 96 12 * 9 = 108 12 * 10 = 120

In this tutorial, we see

Program to generate a multiplication table of a number up to the constant range of 10. (Tail recursion)

Program to generate a multiplication table of a number up to a variable range. (Head recursion)

**Note ** −

Tail recursion is a recursive function with the recursive call as the last expression.

Head recursion is a recursive function with the recursive call as the first expression.

### Algorithm steps

Declare or take input a number to which a multiplication table should be generated.

Implement the program to generate a multiplication table.

Print or Display the multiplication table.

### Example 1

Program to generate multiplication table of a number up to 10

-- function declaration for function generate generate :: Int->Int->IO() -- function definition for function generate -- base case generate n 10 = do putStrLn (show n ++ " * " ++ show 10++" = " ++ show (n*10)) generate n i = do putStrLn (show n ++ " * " ++ show i++" = " ++ show (n*i)) generate n (i+1) -- function declaration for function generateTable generateTable :: Int->IO() -- function definition for function generateTable generateTable n = generate n 1 main :: IO() main = do -- declaring and initializing a variable for the number let num = 12 -- invoking the generateTable function putStrLn ("The multiplication table of " ++ show num ++ " is:") generateTable num

### Output

The multiplication table of 12 is: 12 * 1 = 12 12 * 2 = 24 12 * 3 = 36 12 * 4 = 48 12 * 5 = 60 12 * 6 = 72 12 * 7 = 84 12 * 8 = 96 12 * 9 = 108 12 * 10 = 120

**Note** −

“

**++**” is an operator to concatenate strings.**putStrLn**is a function to display output on the console with a trailing newline (‘

’)**Show**is a function to take an argument of a number and return them by parsing it into a String.

In the above program,

We declared a function

**generate**, which takes two Integer arguments and returns an IO action. In its function definition, The function takes two integer arguments n and i. The function prints the multiplication of the two arguments in a format and recursively calls itself by incrementing the second argument until the second argument is equal to 10.I.e The function

**generate**prints the multiplication table of a number from ‘i’ to 10.We declared a function

**generateTable**, which takes an Integer as an argument and returns an IO action. In its function definition, we take an integer n as an argument and we are calling the function**generate**with n and 1 as arguments.The function

**generateTable**is a helper function that can be invoked with a single argument and this function invokes the generate function with a second argument as ‘1’ which returns an IO action printing the multiplication table of number n.In the

**main**function we declare and initialize a variable**num**and finally we printed the multiplication table by invoking the function**generateTable**with argument num.

### Example 2

Program to generate multiplication table of a number up to a variable range.

-- function declaration for function generateTable generateTable :: Int->Int->IO() -- function definition for function generateTable -- base case generateTable n 1 = do putStrLn (show n ++ " * " ++ show 1++" = " ++ show (n*1)) generateTable n i = do generateTable n (i-1) putStrLn (show n ++ " * " ++ show i++" = " ++ show (n*i)) main :: IO() main = do -- declaring and initializing a variable for the number let num = 12 let len = 20 -- invoking the generateTable function putStrLn ("The multiplication table of " ++ show num ++ " upto length " ++ show len ++ " is:") generateTable num len

### Output

The multiplication table of 12 upto length 20 is: 12 * 1 = 12 12 * 2 = 24 12 * 3 = 36 12 * 4 = 48 12 * 5 = 60 12 * 6 = 72 12 * 7 = 84 12 * 8 = 96 12 * 9 = 108 12 * 10 = 120 12 * 11 = 132 12 * 12 = 144 12 * 13 = 156 12 * 14 = 168 12 * 15 = 180 12 * 16 = 192 12 * 17 = 204 12 * 18 = 216 12 * 19 = 228 12 * 20 = 240

In the above program,

We declared a function

**generateTable**which takes two integers and returns an IO action. In its function definition we take two integers n and i as arguments which recursively call itself with argument n and i-1 until the second argument i is equal to 1. We are using a head recursive technique until the base case is attainted and the function calls are stored in the stack. As the last call in the function is printing the record in the multiplication of arguments. The table is printed in reverse order from 1 to n even though we started with n. This technique is an application of head recursion.The above function prints the multiplication table of number num up to range i.

In the main function we declared and initialized values for number and range and finally printed the multiplication table by invoking the function

**generateTable**.

## Conclusion

In this tutorial, we discussed two different ways to implement a program to generate a multiplication table in the Haskell programming language.

- Related Articles
- C++ Program to Generate Multiplication Table
- Java Program to Generate Multiplication Table
- Swift Program to Generate Multiplication Table
- Kotlin Program to Generate Multiplication Table
- Haskell Program to Print the Multiplication Table in Triangular Form
- C Program to represent a multiplication table.
- Java program to print a multiplication table for any number
- C program to print multiplication table by using for Loop
- Java Program to Print the Multiplication Table in Triangular Form
- C++ Program to Print the Multiplication Table in Triangular Form
- Golang Program to Print the Multiplication Table of a Given Number
- How to Display the multiplication Table using Python?
- Haskell program to add binary strings
- Haskell Program to Implement multiple inheritance
- Haskell Program to Iterate over enum