# Solved: if else conditional statement

If-Else Statement in Haskell is one of the fundamental programming concepts that help developers to control their code flow intelligently. Especially in functional programming languages like Haskell, understanding conditional statements including If-Else, aids to write code that is not only efficient but also elegant.

The If-Else statement is essentially a boolean-based decision-making statement. Given boolean expression, if the result is True, a certain part of the code is executed. If the outcome is false, another part of code gets control.

```if condition
then execute this when condition is true
else execute this when condition is false
```

## Understanding the If-Else construct in Haskell

To provide the solution, we need to look at the prototype of the Haskell If-Else construct. It is a bit different than other languages because of its simplicity and expressiveness. There is no requirement for parenthesis around the condition & the execution blocks are not bound within curly braces.

Let’s consider a simple example where we use If-Else construct to determine if a number is even or odd.

```evenOrOdd :: Int -> String
evenOrOdd n = if n `mod` 2 == 0
then "Even"
else "Odd"
```

Here, the function evenOrOdd takes an integer (Int) input and returns a string (String). It checks for the input number, if it’s even then it returns “Even” else it returns “Odd”.

## Libraries and Functions Related to this Concept in Haskell

Haskell makes it possible to work with different data types using conditional constructs. While standard libraries provide functions to deal with primitive data types, other libraries enable us to work with more complex data types.

The Haskell Prelude Library includes a number of functions to work with Bool data type which is foundational to If-Else construct. The main functions are:

• (&&): Logical AND
• (||): Logical OR
• (not): Logical NOT

Consider a program that takes two boolean values and returns their AND, OR, and NOT results:

```import Prelude

logOperation :: Bool -> Bool -> String
logOperation a b = if (a && b)
then "AND operation is True"
else if (a || b)
then "OR operation is True"
else if (not a)
then "NOT operation of a is True"
else "All operations are False"
```

In this example, the function logOperation takes two Boolean inputs and checks multiple conditions on these inputs to determine the output.

To conclude, Haskell’s If-Else construct provides a clean and straightforward way to control the flow of the program based on certain boolean tests. Understanding this syntax and semantics enable to harness the power of functional programming in Haskell to its fullest.

Related posts: