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