En haskell es posible definir funciones, sin darles un nombre, por ejemplo, si quisieramos definir a la función identidad, una posibilidad seria:
identidad x = x
Pero si vamos a usar solo una vez a esta función podría volverse tedioso tener que escribir identidad la usemos, de hecho sería tedioso tener que definir esta función!! si solo la usaremos una vez; Haskell nos permite definir funciones sin nombre; para esto Haskell hace uso de la notación lambda, en notación lambda la función identidad se escribiría:
En Haskell escribiriamos:
\x -> x
la "\" representa a la lambda, la "->" al punto
más ejemplos:
- \x-> x+1
- \x -> 2 *x
- \x -> fst x
- \x y -> x + y
Las funciones anónimas suelen ser útiles cuando usamos foldr, foldl, foldalt etc
Tipos de datos algebraicos
Para la definición de tipos algebraicos se usa la palabra reservada data, seguida del nombre del tipo, un signo de igual y los constructores del tipo que se esta definiendo, ejemplos:
- data Bool = TRUE | FALSE
- data Clima = Templado | Calido| Nublado
- data Figuras = Circulo Float| Cuadrado Float
- data Formula = Y Formula Formula | NO Formula | T| Var Integer
- data Alumnos = Ricchy | Juan | Rodrigo | Jessica | Jorge
Se pueden definir tipos de datos finitos como infinitos, como en el último ejemplo en el cual definimos a las formulas bien formadas de la la lógica proposicional usando:
- ,
- variables de la forma con
- y a la constante True
El cual es un conjunto infinito
No hay comentarios:
Publicar un comentario