Tipos básicos y definiciones en Haskell.
Enviado por tolero • 15 de Enero de 2018 • 671 Palabras (3 Páginas) • 404 Visitas
...
Float y Double
Las operaciones sobre estos tipos son las estandar (aritm´eticas, trigonom´etricas, etc)[pic 25]
Hay funciones de conversio´n hacia y desde los enteros.[pic 26]
ceiling :: Float → Integer floor :: Float → Integer round :: Float → Integer
fromInteger :: Integer → Float fromIntegral :: Int → Float
---------------------------------------------------------------
Es posible definir funciones a trav´es de ecuaciones con condiciones.[pic 27]
min x y | x ™ y = x
| otherwise = y
donde otherwise es una condicio´n que siempre es verdadera.
Las condiciones se evaluan en secuencia y se escoge el primer caso cuya condicio´n sea verdadera.[pic 28]
Una forma alternativa es mediante el uso de if then else min x y = if x ™ y then x else y[pic 29][pic 30][pic 31]
Si todas las condiciones fallan, entonces da error. Por ejemplo, llamar mint 4 3.[pic 32]
mint x y | x ™ y = x
---------------------------------------------------------------
Otro ejemplo:[pic 33]
checkVal x y | x y = 1
| x > y = −1
| x == y = 0
En la u´ltima ecuacio´n podr´ıamos haber usado otherwise:[pic 34]
checkVal x y | x y = 1
| x > y = −1
| otherwise = 0
---------------------------------------------------------------
En Haskell es posible definir m´odulos.[pic 35]
Cada m´odulo va a tener un nombre y va a contener un conjunto de definiciones.[pic 36]
module A where
square :: Integer → Integer square x = x ∗ x
double :: Integer → Integer double x = 2 ∗ x
Como es habitual, m´odulos pueden importar otros m´odulos:[pic 37]
module Quad where import A
quad :: Integer → Integer
quad x = double (double x )
---------------------------------------------------------------
Podemos redefinir una definicio´n que est´a siendo importada de otro m´odulo.[pic 38]
module Quad where import A hiding (double)
double :: Integer → Integer double x = x ∗ x
quad :: Integer → Integer
quad x = double (double x )
...