Programacion Funcional Con Haskell
Programación Funcional en Haskell
Lenguajes de Programación
René Mac Kinney Romero
UAM - Iztapalapa
17 de Septiembre de 2012
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Resumen
Programación Funcional Filosofía Modelo de reescritura HaskellDenición de funciones Interprete de Haskell Listas y tipos Reescritura Elementos de Haskell Estructuras de control Comentarios Fuertemente tipicado Preludio y Ejemplos
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Filosofía Modelo de reescritura
Resumen
Programación Funcional
Haskell
Elementos de HaskellLP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Filosofía Modelo de reescritura
Resumen
Programación Funcional Filosofía Modelo de reescritura
Haskell
Elementos de Haskell
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de HaskellFilosofía Modelo de reescritura
Otra forma de proponer la computación Basada en el Calculo Lambda de Church y Kleene Toda expresión computable se puede expresar como expresión
λ
Se caracteriza por programar con valores, funciones y formas funcionales. Es declarativo, se describe como son las funciones y no como calcularlas. Para calcular el valor de las funciones se utiliza el modelo de lareducción
β (β -redex)
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Filosofía Modelo de reescritura
Resumen
Programación Funcional Filosofía Modelo de reescritura
Haskell
Elementos de Haskell
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional HaskellElementos de Haskell
Filosofía Modelo de reescritura
No importa el orden en que se evalúe una función, siempre se obtiene el mismo resultado. Es decir que podemos evaluar una expresión en cualquier orden y siempre obtendremos el mismo resultado. Dadas
f (x ) g (y )
=x ∗x +2 =y +y = g (5) ∗ g (5) + 2 = 10 ∗ 10 + 2 = 102 = f (5 + 5) = f (10) = 10 ∗ 10 + 2 = 102
f (g (5))
LP 12I - RenéMac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Denición de funciones Interprete de Haskell Listas y tipos Reescritura
Resumen
Programación Funcional
Haskell
Elementos de Haskell
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Denición defunciones Interprete de Haskell Listas y tipos Reescritura
Haskell Lenguaje funcional. Hugs Interprete que calcula formas normales. GHC Compilador de Haskell
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Denición de funciones Interprete de Haskell Listas y tipos Reescritura
Resumen
Programación FuncionalHaskell Denición de funciones Interprete de Haskell Listas y tipos Reescritura
Elementos de Haskell
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Denición de funciones Interprete de Haskell Listas y tipos Reescritura
La denición de las siguientes funciones
f x
=x +2 = n × fact (n − 1) =1
fact(n) fact (0)
se hace en Haskell de la siguiente manera
f x = x + 2 fact (n) = n * fact (n-1) fact (0) = 1
LP 12I - René Mac Kinney Romero
Programación Funcional en Haskell
Programación Funcional Haskell Elementos de Haskell
Denición de funciones Interprete de Haskell Listas y tipos Reescritura
La función tiene que ir en la primera columna. Si la función ocupa más de un...
Regístrate para leer el documento completo.