Comment on page
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 1yr ago