Al igual que otros lenguajes de programación, Haskell provee varias formas de definir funciones dentro de las cuales se puede elegir entre un cierto numero de posibles resultados.
Para usar cualquier estructura condicional requerimos de una expresión lógica, así que lo primero sera ver cuales son los símbolos de los operadores lógicos de Haskell:
- > mayor
- < menor
- >= mayor o igual
- <= menor o igual
- /= diferente de
- == igual que
IF-THEN-ELSE
La primer forma de emplear estructuras condicionales en haskell es con la estructura if-then-else, su sintaxis es:
if expresión lógica then acción en caso positivo else acción en caso negativo
veamos algunos ejemplos de uso del if.
En el primer caso hemos creado una función llamada «absoluto» que recibe un numero entero y dara como resultado un numero entero, la función devolverá el valor absoluto de un numero, así que usa if para ver si n es mayor de cero, lo cual indicara que es un numero positivo, de ser asi, observe que en el then se dara como resultado el mismo valor y en el else se multiplica el numero por menos uno para convertirlo en positivo.
La función restap implementa una resta positiva, así que para ello revisa cual de los dos numero es el mayor, si a es mayor que b realiza a-b y en caso contrario que sería que b fuera el mayor restaría b-a
La ultima recibe un numero, si el numero es un 5 presentar la letra a y en caso contrario la letra b.
Ecuaciones vigilantes
Otra forma de implementar las estructuras selectivas es mediante el uso de ecuaciones vigilantes, en las cuales se necesita del símbolo | que aparece presionando la tecla de números ordinales que esta a la izquierda del 1 en el teclado.
La sintaxis de una ecuación vigilante es la siguiente:
observe que en la segunda linea se usa la palabra clave otherwhise para indicar que esa sera la acción a realizar en caso de no cumplirse la expresión lógica.
Veamos a continuación las versiones en ecuación vigilante de las funciones que definimos anteriormente
El funcionamiento de las funciones es exactamente el mismo.
A continuación quedan los enlaces para los dos ejemplos de este tema