Haskell Hero
Haskell Hero es un manual interactivo del lenguaje Haskell para principiantes.
|
Funciones con booleanos¿Por qué funciones con valores booleanos?Ejemplo
Definid la función Una solución podría ser la siguiente:
Escrito en Haskell: parGrande :: Integer -> Char parGrande x = if even x then if x > 10 then 'A' else 'N' else 'N'No es necesario destacar que si las condiciones fueran tres o cuatro y querríamos que todas se cumplirán, el código sería muy desordenado. Por eso tenemos funciones con booleanos. Y lógico
Y lógico, es decir la conjunción lógica, es una función binaria que se representa con el operador Definición
(&&) :: Bool -> Bool -> Bool True && True = True _ && _ = FalseEsta definición supone que ya sabemos que es la evaluación de los dos parámetros. Sin embargo, si el primer parámetro se evalúa a False, no hay que evaluar el segundo parámetro porque la evaluación final será False de todos modos.
Al contrario, si el primer parámetro se evalúa a Por eso se usa la definición siguiente: False && _ = False True && x = x Ejemplo
Definamos la función del ejemplo del primer párrafo. Su definición con parGrande x = if even x && x > 10 then 'A' else 'N' O lógico
La función o lógico, es decir la disyunción lógica, la usamos cuando queremos usar una condición compuesta que debe evaluarse a True si al menos una condición interior se evalúa a Definición
False || False = False _ || _ = TrueIgualmente como la función (&&) , la función (||) también tiene una variante más efectiva. Si el primer parámetro se evalúa a True , no hay que evaluar el segundo parámetro ya que sabemos que toda la expresión se evalúa a True .
True || _ = True False || x = x Ejemplo
Definid una función Definimos entonces una función que comprueba si el número es inferior a 10 o superior a 20. entre :: Integer -> String entre x = if x < 10 || x > 20 then "Sí" else "No" Not
La función unaria Definición
not :: Bool -> Bool not True = False not False = True |