# Guarded Equations

**Guarded equations**provide an alternative to if-else statements and are especially useful when we need multiple ifs in our code. Like

`MultiWayIfs`

, they represent a sequence of expressions that evaluate to either `True`

or `False`

(conditions) which are individually called guards and are used to decide the flow of the program. The syntax is very similar to the `MultiWayIf`

syntax and allows us to get rid of the `if`

keyword altogether:trackScore :: Float -> Float -> String

trackScore time avgTime -- equation sign moved to each expression below

| time < avgTime = "Great! Your time is " ++ show (avgTime - time) ++ "

seconds below average!"

| time > avgTime = "Your time is " ++ show (time - avgTime) ++ "

seconds above average."

| otherwise = "Your time is on par with the average time!"

Note that in the above implementation of

**guarded equations**, we have**moved the equation sign**in the line`trackScore time avgTime`

, and we have **replaced the ifs arrow**`(->)`

with it.Last modified 3mo ago