Programacion Funcional D1

Páginas: 5 (1102 palabras) Publicado: 26 de agosto de 2015
Programacion en Dr. Racket
(Dr. Scheme)
Profesor Francisco Alejandro Medina

Programación Funcional
• La programación funcional, iniciada a finales
de la década de los 50's, es aquella cuyo
paradigma se centra en el Cálculo Lambda.
• Este paradigma es más útil para el área de
inteligencia artificial (ya que satisface mejor las
necesidades de los investigadores en esta
área), y en sus campossecundarios: cálculo
simbólico, pruebas de teoremas, sistemas
basados en reglas y procesamiento del
lenguaje natural.
• La característica esencial de la programación
funcional es que los cálculos se ven como una
función matemática que hace corresponder
entradas y salidas.

El calculo Lambda
El cálculo lambda es un sistema formal diseñado para investigar
la definición de función, la noción deaplicación de funciones y
la recursión. Fue introducido por Alonzo Church y Stephen
Kleene en la década de 1930; Church usó el cálculo lambda en
1936 para resolver el Entscheidungsproblem. Puede ser usado
para definir de manera limpia y precisa qué es una "función
computable". El interrogante de si dos expresiones del cálculo
lambda son equivalentes no puede ser resuelto por un
algoritmo general. Esta fuela primera pregunta, incluso antes
que el problema de la parada, para el cual la indecidibilidad fue
probada. El cálculo lambda tiene una gran influencia sobre los
lenguajes funcionales, como Lisp, ML y Haskell.

Objetivo de la Programación Funcional
• Conseguir lenguajes expresivos y matemáticamente elegantes, en los
que no sea necesario bajar al nivel de la máquina para describir el
procesollevado a cabo por el programa, y evitando el concepto de
estado del cómputo.
• Acercar su notación a la notación normal de la matemática.

Características de la Programación Funcional
• Los programas escritos en un lenguaje funcional están constituidos
únicamente por definiciones de funciones (funciones puramente
matemáticas
• No hay algo como el estado de un programa, no hay variables
globales.
•La no existencia de asignaciones de variables
• La falta de construcciones estructuradas como la secuencia o la
iteración (no hay for, ni while, etc).
• Todas las repeticiones de instrucciones se lleven a cabo por medio de
funciones recursivas.

Lenguajes de Programación Funcionales
Se clasifican en dos Tipos:

• Funcionales Puros (Tienen Mayor potencia, y se usan de
forma especial enaplicaciones eminentemente
matemáticas)
Ej: Haskell y Miranda.

• Funcionales Híbridos (Son Menos Dogmaticos que los
puros ya que incluyen conceptos tomados de los
lenguajes imperativos (secuencia y asignación de
variables
Ej: Lisp, Scheme (Racket), Ocaml, Erlang…

El Lenguaje Dr. Racket

Notación para la sintaxis de Racket
• Todas las secuencias de caracteres delimitadas por < y > representan
símbolos noterminales. Por ejemplo: .
• Todas las secuencias de caracteres no delimitadas, representan
símbolos terminales.
Por ejemplo: define, (, ), let.
• El metaagrupamiento se hace con llaves: { y }.
• El metasímbolo +, indica al menos una ocurrencia del símbolo
precedente.
• El metasímbolo *, indica ninguna, una o varias ocurrencias del
símbolo precedente.

Expresiones Simples Notación Prefija e Infija
• Estamos acostumbrados a la adición de números usando la notación
infija , por ejemplo :
1+2+3+4+5=15

• Racket utiliza una notación Prefija, Esto significa que el operador está
antes cada uno de sus argumentos :
(+ 1 2 3 4 5) =>15
(* (+ 3 4) (- 9 6)) =>21
Su equivalente en Notación Infija seria
( 3 + 4 ) . ( 9 – 6 ) = 21

a=2
b=3
c=4
d=1

a=2
b=3
c=4
d=1

Notaciónprefija de Racket
En Racket, todas las expresiones tienen la forma: (
*), es decir, que están siempre en notación prefija con
pareamiento completo:
(* 2 3) -> equivale a (2 * 3)
(> 5 6)-> equivale a (5 > 6)
(+ 2 3 10)-> equivale a (2 + 3 + 10)
(+ 4 (* 3 2))-> equivale a (4 + 3 * 2)
Por ejemplo, la expresión infija 5a + 2bc^2 es: (+ (* 5 a) (* 2 b c c))

Ventajas de la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • programación funcional
  • 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

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS