- 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 Check Whether a Number is Even or Odd
In Haskell we have isEven, isOdd and mod functions that can be used for checking whether a given number is even or odd. In the first example, we are going to use (isEven 0 = True and isEven n = isOdd (n - 1)) and (isOdd 0 = False and isOdd n = isEven (n - 1)) function. And in the second example, we are going to use (isEven n = n `mod` 2 == 0) function.
Method 1: Checking whether a number is even or odd using isEven and isOdd function
In this method, the isEven and isOdd functions are defined as mutually recursive functions. The isEven function returns True if the input number is zero, and returns the result of isOdd for n - 1 otherwise. The isOdd function returns False if the input number is zero, and returns the result of isEven for n - 1 otherwise.
Algorithm
Step 1 − The isEven function is defined as,
isEven 0 = True isEven n = isOdd (n - 1).
Step 2 − The isOdd function is defined as,
isOdd 0 = False isOdd n = isEven (n - 1).
Step 3 − 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, a variable n is defined with the value 5, and the result of isEven n is checked. If the result is True, the message "Even" is printed to the console. If the result is False, the message "Odd" is printed to the console.
Step 4 − The variable named, “n” is being initialized. It will hold the number which is to be checked whether it is even or odd.
Step 5 − The result is printed to the console using ‘putStrLn’ after the function is called.
Example 1
In this example, we define isEven and isOdd functions to check whether the number is odd or even.
isEven :: Integer -> Bool isEven 0 = True isEven n = isOdd (n - 1) isOdd :: Integer -> Bool isOdd 0 = False isOdd n = isEven (n - 1) main :: IO () main = do let n = 5 if isEven n then putStrLn "Even" else putStrLn "Odd"
Output
Odd
Method 2: Checking whether a number is even or odd using mod function
In this method, the isEven function simply returns True if the result of n mod 2 is equal to 0, which means the number is evenly divisible by 2 and therefore even. If the result is not equal to 0, the function returns False, meaning the number is not evenly divisible by 2 and therefore odd.
Algorithm
Step 1 − The isEven function is defined using mod function as,
isEven n = n `mod` 2 == 0.
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, the isEven function is called with n as the argument, and the result is checked as in the previous implementation. If the result is True, the message "Even" is printed to the console. If the result is False, the message "Odd" is printed to the console.
Step 3 − The variable named, “n” is being initialized. It will hold the number which is to be checked whether it is even or odd.
Step 4 − The result is printed to the console using ‘putStrLn’ after the function is called.
Example 1
In this example, we define isEven function using mod function to check whether the number is odd or even.
isEven :: Integer -> Bool isEven n = n `mod` 2 == 0 main :: IO () main = do let n = 5 if isEven n then putStrLn "Even" else putStrLn "Odd"
Output
Odd
Example 2
In this example, the isEven function uses pattern matching to determine if the number is even or odd. If the result of n mod 2 is equal to 0, the function returns the string "Even". If the result is not equal to 0, the function returns the string "Odd".
isEven :: Integer -> String isEven n | n `mod` 2 == 0 = "Even" | otherwise = "Odd" main :: IO () main = do let n = 5 putStrLn (isEven n)
Output
Odd
Conclusion
In Haskell, we can determine if a number is even or odd by using the modulo operator (mod). The modulo operator returns the remainder of the division of one number by another. If the result of the modulo operation between a number n and 2 is equal to 0, the number n is even. If the result is not equal to 0, the number n is odd. We can also use in-built isEven and isOdd functions.
- Related Articles
- Java Program to Check Whether a Number is Even or Odd
- C++ Program to Check Whether Number is Even or Odd
- 8085 program to check whether the given number is even or odd
- Java program to find whether given number is even or odd
- Haskell Program to Check Whether a Number is Positive or Negative
- Haskell Program to Check Whether a Number is Prime or Not
- Python Program to Determine Whether a Given Number is Even or Odd Recursively
- Golang Program to Determine Recursively Whether a Given Number is Even or Odd
- Check whether given floating point number is even or odd in Python
- How to Check if a Number is Odd or Even using Python?
- Java Menu Driven Program to Check Positive Negative or Odd Even Number
- PHP program to check if the total number of divisors of a number is even or odd
- Haskell program to check whether the input number is a Prime number
- Haskell Program to Check whether the input number is a Neon Number
- Haskell Program to Check Whether a Character is Alphabet or Not
