21 dic 2007

Mas sobre Haskell

Funciones anónimas
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:

    ga