lunes, 7 de marzo de 2016

1.3 Definición de funciones

Definición de funciones.

Una función es una aplicación que toma uno o más argumentos y devuelve un valor.
 Es una correspondencia en la que cada elemento del dominio está relacionado con un único elemento de la imagen.
• Ejemplo de definición de función en Haskell:
doble x = x * x
• Notación matemática: f(a, b) + cd
• Notación Haskell: f a b + c * d
• Los paréntesis se utilizan para agrupar expresiones:
• Notación matemática: f(x, g (y))
• Notación Haskell: f x (g y)
 Las definiciones se incluyen en ficheros de texto. Se acostumbra a identificar dichos ficheros mediante el sufijo .hs.
 Los nombres de funciones tienen que empezar por una letra en minúscula.
 En Haskell la disposición del texto del programa (el sangrado) delimita las definiciones mediante la siguiente regla:
·         Una definición acaba con el primer trozo de código con un margen izquierdo menor o igual que el del comienzo de la definición actual.
·         Un comentario simple comienza con -- y se extiende hasta el final de la línea.
·         Un comentario anidado comienza con {- y termina en -}
máximo x y z=max x( max y z)  {- ejemplo de una definición y un comentario }

La manera más fácil de definir funciones es por combinación de otras funciones:
 fac n = product [1..n]
impar x = not (even x)
 cuadrado x = x*x
suma_de_cuadrados lista = sum (map cuadrado lista) 
Las funciones pueden tener más de un parámetro:
 comb n k = fac n / (fac k * fac (n-k))
formulaABC a b c = [ (-b+sqrt(b*b-4.0*a*c)) / (2.0*a)
  , (-b-sqrt(b*b-4.0*a*c)) / (2.0*a)]

 Las funciones sin parámetros se llaman normalmente constantes:
 pi = 3.1415926535
 e = exp 1.0

Toda definición de función tiene por tanto la siguiente forma:
 • El nombre de la función
• Los nombres de los parámetros (si existen)
• El símbolo =
 • una expresión, que puede contener los parámetros, las funciones estándar y otras funciones definidas. 
Una función que tiene un valor booleano como resultado, tiene a la derecha del símbolo = una expresión con un valor booleano:

negativo  x = x < 0
positivo   x = x > 0
esCero     x = x == 0
Note la diferencia en el anterior ejemplo entre =  y  ==. El símbolo = separa la parte izquierda de la parte derecha de la definición. El símbolo == es un operador, como < y >.




No hay comentarios:

Publicar un comentario