Programacion

Solo disponible en BuenasTareas
  • Páginas : 6 (1489 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de agosto de 2012
Leer documento completo
Vista previa del texto
Bases de Lenguajes de Programación

Tema 5. El paradigma de programación funcional.
Bases de Lenguajes de Programación 1

Tema 5. Paradigma funcional. INDICE:
1. 2. 3. 4. 5. 6. 7. 8. 9. Programación funcional. Lenguaje Hope. Tipos de datos. Expresiones sencillas. Tuplas y expresiones condicionales. Recursividad. Tipos de datos definidos por el usuario. Definiciones locales. Conceptos sobretipos de datos. Tipos de datos recursivos. Polimorfismo.
Bases de Lenguajes de Programación 2

1

BIBLIOGRAFÍA:
• R. Bailey, Functional programming with Hope, Ellis Horwood, 1989. • A. J. Field, P. Harrison, Functional programming, Addison-Wesley Iberoamerica, 1988. (caps. 1, 2 y 3)

Bases de Lenguajes de Programación

3

1. Programación funcional
• La programación funcional es unparadigma de programación. • Característica: aplicación funcional (uso del concepto matemático de función) como estructura de control principal. • Un programa completo se escribe como una única expresión funcional que puede incluir llamadas a funciones.
Bases de Lenguajes de Programación 4

2

1. Programación funcional
• Propiedad de los programas funcionales: la transparencia referencial •“el resultado devuelto por una función sólo depende de los argumentos que se le pasan en la llamada”. • En programación imperativa esto no tiene porqué ser cierto debido a efectos laterales (producidos por el uso de variables globales).
Bases de Lenguajes de Programación 6

1. Programación funcional
• Ejemplo: (Programa Pascal con efectos laterales)
program ConEfectosLat (output); var estado:boolean; function Efectos (n:integer): integer; begin if estado then Efectos := n else Efectos := 2*n+1; estado := not estado; end; (* Efectos *) begin estado := True; WriteLn (Efectos(1), ‘ ‘, Efectos(1)); WriteLn (Efectos(2), ‘ ‘, Efectos(2)); end. (* ConEfectosLat *)
Bases de Lenguajes de Programación 7

3

1. Programación funcional
• La salida obtenida al ejecutar el programa es lasiguiente: 1 2 3 5

¡llamadas con los mismos argumentos a la función Efectos producen resultados distintos! • La evaluación de un programa funcional sólo depende de los argumentos que se le pasan (propiedad de transparencia referencial). => Programación sin efectos laterales.
Bases de Lenguajes de Programación 8

1. Programación funcional
• La programación funcional es un tipo de programacióndeclarativa (diferente a la programación imperativa). • Los programas funcionales expresan mejor qué hay que calcular, y no “detallan” tanto cómo realizar dicho cálculo (como ocurre con los programas imperativos).

Bases de Lenguajes de Programación

9

4

1. Programación funcional
• En los programas funcionales, al igual que en los imperativos disponemos de diferentes tipos de datospredefinidos (enteros, reales, booleanos y caracteres), y de tipos de datos definidos por el programador. • Estructuras de control en los programas funcionales:
1. composición funcional, 2. construcción condicional y 3. recursividad.
Bases de Lenguajes de Programación 10

1. Programación funcional
• El primer lenguaje funcional desarrollado fue LISP (1958), que se aplicó en el área de InteligenciaArtificial. • Otros de los lenguajes funcionales son: – Standard ML, Hope, Haskell, etc.

Bases de Lenguajes de Programación

11

5

1. Lenguaje Hope
• El lenguaje funcional Hope puede considerarse como una notación para escribir programas en forma de expresiones funcionales. • Una expresión puede estar constituida por un conjunto de símbolos básicos como: -,+, >, (, 2, ... • Los símbolospueden ser: operadores {+, -, >,...}, operandos {x, 1, 2,...}, nombres de funciones (con sus argumentos), separadores {;}, etc. • Ejemplo:
(11 + 10) – (20 + 5)+ Maximo (pi, 20);
Bases de Lenguajes de Programación 12

1. Lenguaje Hope. Prioridad
2 + 3 * 5 ; • • • • Si hay varios operadores… ¿Cómo se calcula el valor? Asignar prioridades a operadores. La operaciones con operador de más...
tracking img