Programación Funcional

Páginas: 6 (1298 palabras) Publicado: 2 de octubre de 2011
Tema 1: Introducción a la programación funcional
Informática (2010–11)

José A. Alonso Jiménez
Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

IM Tema 1: Introducción a la programación funcional

Tema 1: Introducción a la programación funcional
1. Funciones 2. Programación funcional 3. Rasgos característicos de Haskell 4.Antecedentes históricos 5. Presentación de Haskell

2 / 21

IM Tema 1: Introducción a la programación funcional Funciones

Tema 1: Introducción a la programación funcional
1. Funciones 2. Programación funcional 3. Rasgos característicos de Haskell 4. Antecedentes históricos 5. Presentación de Haskell

3 / 21

IM Tema 1: Introducción a la programación funcional Funciones

Funciones en HaskellEn Haskell, una función es una aplicación que toma uno o más argumentos y devuelve un valor. En Haskell, las funciones se definen mediante ecuaciones formadas por el nombre de la función, los nombres de los argumentos y el cuerpo que especifica cómo se calcula el valor a partir de los argumentos. Ejemplo de definición de función en Haskell:

doble x = x + x
Ejemplo de evaluación: doble 3 = 3+3[def. de doble] = 6 [def. de +]

4 / 21

IM Tema 1: Introducción a la programación funcional Funciones

Evaluaciones de funciones en Haskell
Ejemplo de evaluación anidada impaciente: doble (doble 3) = doble (3 + 3) [def. de doble] = doble 6 [def. de +] = 6+6 [def. de doble] = 12 [def. de +] Ejemplo de evaluación anidada perezosa: doble (doble 3) = (doble 3) + (doble 3) [def. de doble] = (3+3) + (doble 3) [def. de doble] = 6 + (doble 3) [def. de +] = 6 + (3 + 3) [def. de doble] = 6+6 [def. de +] = 12 [def. de +]

5 / 21

IM Tema 1: Introducción a la programación funcional Funciones

Comprobación de propiedades
Propiedad: El doble de x más y es el doble de x más el doble de y Expresión de la propiedad:

prop_doble x y = doble (x+y) == (doble x) + (doble y)
Comprobación dela propiedad con QuickCheck: *Main> quickCheck prop_doble +++ OK, passed 100 tests. Para usar QuickCheck hay que importarlo, escribiendo al principio del fichero

import Test.QuickCheck

6 / 21

IM Tema 1: Introducción a la programación funcional Funciones

Refutación de propiedades
Propiedad: El producto de dos números cualequiera es distinto de su suma. Expresión de la propiedad:prop_prod_suma x y = x*y /= x+y
Refutación de la propiedad con QuickCheck: *Main> quickCheck prop_prod_suma *** Failed! Falsifiable (after 1 test): 0 0

7 / 21

IM Tema 1: Introducción a la programación funcional Funciones

Refutación de propiedades
Refinamiento: El producto de dos números no nulos cualequiera es distinto de su suma.

prop_prod_suma' x y = x /= 0 && y /= 0 ==> x*y /= x+yRefutación de la propiedad con QuickCheck: *Main> quickCheck prop_prod_suma' +++ OK, passed 100 tests. *Main> quickCheck prop_prod_suma' *** Failed! Falsifiable (after 5 tests): 2 2

8 / 21

IM Tema 1: Introducción a la programación funcional Programación funcional

Tema 1: Introducción a la programación funcional
1. Funciones 2. Programación funcional 3. Rasgos característicos de Haskell4. Antecedentes históricos 5. Presentación de Haskell

9 / 21

IM Tema 1: Introducción a la programación funcional Programación funcional

Programación funcional y programación imperativa
La programación funcional es un estilo de programación cuyo método básico de computación es la aplicación de funciones a sus argumentos. Un lenguaje de programación funcional es uno que soporta y potenciael estilo funcional. La programación imperativa es un estilo de programación en el que los programas están formados por instrucciones que especifican cómo se ha de calcular el resultado. Ejemplo de problema para diferenciar los estilos de programación: Sumar los n primeros números.

10 / 21

IM Tema 1: Introducción a la programación funcional Programación funcional

Solución mediante...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación Funcional
  • Programacion Funcional
  • Programación funcional
  • Programacion Logica Y Funcional
  • Programación funcional a mediano plazo
  • Técnicas De La Programación Funcional Perezosa
  • Programacion Funcional D1
  • Bloques funcionales de programacion del plc.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS