programacion funcional

Páginas: 25 (6027 palabras) Publicado: 25 de febrero de 2015
CAPÍTULO IV:
Programación Funcional
Prof. Teddy Alfaro

4.1 Introducción a la
Programación Funcional

1

Programación Funcional
• Paradigma diferente a los imperativos, que se
aleja de la máquina de von Neumann
• Basado en funciones matemática (notación
funcional lambda de Church)
• No existen realmente arquitecturas de
computadores que permitan la eficiente
ejecución deprogramas funcionales
• LISP es el primero, del cual derivan Scheme,
Common LISP, ML y Haskell

Funciones Matemáticas
• Un función es una proyección de un conjunto
dominio a uno que es el rango
f: D

R

• La evaluación de funciones está controlada por
recursión y condiciones (imperativos lo hacen
normalmente por secuencias e iteraciones)
• Funciones matemáticas entregan siempre el
mismovalor para el mismo conjunto de
argumentos y, por lo tanto, no tiene efectos
laterales.

2

Formas Funcionales
(funciones de orden superior)
Toman funciones como parámetros y/o
producen funciones como resultado
Composición de Funciones
h

f°g

entonces:

h(x)

f(g(x))

Construcción. Lista se funciones que se
aplican
[f, g](x)

produce

(f(x), g(x))

Aplicar a todo.Una función se aplica a lista
arg.
(f, (x, y, z))

produce

(f(x), f(y), f(z))

Fundamentos de la PF
• La PF pura no usa variables ni asignación
• Repetición debe ser lograda con recursión
• Un programa consiste de definición de
funciones y aplicación de éstas
• La ejecución del programa no es nada más que
la evaluación de funciones
• La transparencia referencial se refiere a que laevaluación de una función simpre produce el
mismo resultado

3

Lenguajes Funcionales
• El lenguaje provee algunas funciones básicas,
que son primitivas para construir funciones más
complejas.
• Se definen algunas estructuras para representar
datos en los parámetros y resultados de las
funciones.
• Normalmente se implementan mediante
interpretadores, pero también se puedencompilar.

4.2 Introducción al
Lenguaje Scheme
Sintaxis, listas, operadores
básicos, expresiones lambda y
definición de variables

4

Origen de Scheme





Desarrollado en el MIT a mediados del ´70
Es un dialecto de LISP
Usado para enseñanza de programación
Características:
– Pequeño con sintaxis y semántica simple
– Nombres tienen ámbito estático
– Funciones son entitades deprimera clase, y
por lo tanto se tratan como cualquier valor

Sintaxis
• Palabras claves
• Variables
• Datos constantes (e.g. números;
caracteres; strings; vectores, listas y
símbolos citados)
• Formas estructuradas
• Blancos y comentarios (después de ;)

5

Identificadores
• Corresponden a palabras claves, variables y
símbolos, que no son sensible a mayúsculas
• Se forman de:– mayúsculas y minúsculas [´A´ .. ´Z´, ´a´..´z´]
– Dígitos [´0´..´9´]
– Caracteres [? ! . + - * / < = > : $ % ^ & _ ˜ ]

• Identificadores no pueden comenzar con ningún
carácter que comienza un número (i.e. dígito, +,
- y .), excepto casos de identificadores como + y
...

Ejemplo de Identificadores
• X3 y ?$!!!
• Abcd y AbcD
• 8id

Son válidos
Son el mismo
no es válido

6 Constantes Básicas
• String: se escribe usan citado doble (“)
– e.g. “Un string es sensible a Mayusculas”

• Un caracter precede de #\
– e.g. #\a

• Un número pueden ser enteros, fraccionarios, punto
flotante y en notación científica
– e.g. -365, 1/4, 23.46, 1.3e27

• Números complejos en coordenadas rectangulares
y polares
– e.g. 2.7-4.5i

+3.4@-0.5

• Booleanos son los valores #f(falso) y #t (verdadero)

Ambiente Interactivo de Scheme
• Corresponde al ciclo: leer, evaluar e imprimir
(denominado REPL).
• El sistema entrega un pronto, se ingresa la
expresión, el sistema evalúa y entrega el
resultado.
Ejemplo:
“Hola Scheme”
=> “Hola Scheme”
(Toda constante evalúa en la misma constante)

• Es posible cargar y salvar en un archivo para
facilitar el proceso de...
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
  • Programación funcional
  • Programacion Logica Y Funcional
  • Programación funcional a mediano plazo
  • Técnicas De La Programación Funcional Perezosa
  • Programacion Funcional D1

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS