Programacion funcional

Solo disponible en BuenasTareas
  • Páginas : 18 (4439 palabras )
  • Descarga(s) : 0
  • Publicado : 5 de febrero de 2011
Leer documento completo
Vista previa del texto
Indice
3.1 PROGRAMACIÓN FUNCIONAL 3
INTRODUCCIÓN 3
JUSTIFICACIÓN 3
DESARROLLO 4
CARACTERISTICAS 4
UNA ANALOGÍA CON LA PROGRAMACIÓN ESTRUCTURADA. 4
UNIENDO PROGRAMAS 5
UN EJEMPLO DE INTELIGENCIA ARTIFICIAL 6
CONCLUSIÓN 14
REFERENCIAS 15

3.1 PROGRAMACIÓN FUNCIONAL
INTRODUCCIÓN
Un lenguaje de programación es sitema notacional para describir computaciones en una forma legibletanto para la maquina como para el ser humano[Ken05].
La programación funcional apareció como un paradigma independiente a principio de los sesenta. Su creación es debida a las necesidades de los investigadores en el campo de la inteligencia artificial y en sus campos secundarios del cálculo simbólico, pruebas de teoremas, sistemas basados en reglas y procesamiento del lenguaje natural. Estasnecesidades no estaban cubiertas por los lenguajes imperativos de la época.
La programación funcional se denomina así porque un programa en este paradigma consta completamente de funciones. El programa principal por sí mismo está escrito como una función que recibe la entrada del programa como su argumento y devuelve la salida del programa como resultado. Típicamente, la función es definida entérminos de otras funciones, las cuales a su vez están definidas en términos de otras funciones, hasta que en el nivel más bajo las funciones son primitivas del lenguaje.
Las características y ventajas especiales de la programación funcional pueden exponerse brevemente más o menos así. Los programas funcionales no contienen sentencias de asignación; de este modo las variables, una vez que adquierencierto valor, nunca lo cambian. Más generalmente, los programas funcionales no contienen efectos colaterales. Una función que sea llamada puede no tener efecto sobre otra que calcule su resultado. Esto elimina una fuente importante de errores, y también hace al orden de la evaluación irrelevante – pues al no haber efectos colaterales que puedan modificar el valor de una expresión, esta puede serevaluada en cualquier momento-. Esto libera al programador de la carga de establecer el control de flujo. Dado que las expresiones pueden ser evaluadas en cualquier momento, uno puede reemplazar libremente a las variables por sus valores y viceversa – esto es, los programas son “transparentes referencialmente”. Esta libertad ayuda a hacer a los programas funcionales matemáticamente manejables,contrario a su contraparte convencional.
La programación funcional es un paradigma de programación declarativa basado en la utilización de funciones aritméticas.
JUSTIFICACIÓN
Dado que el software se hace cada vez más y más complejo, también se vuelve importante estructurarlo adecuadamente. Un software bien estructurado es fácil de escribir, depurar, y proporciona un conjunto de módulos que puedenser reutilizados para reducir futuros costos de rogramación. Los lenguajes convencionales marcan límites conceptuales en la forma en que los problemas pueden ser modularizados. Los lenguajes funcionales dejan estos límites atrás.
DESARROLLO
CARACTERISTICAS
Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no comosubprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.
Otras características propias de estos lenguajes son la no existencia de asignaciones devariables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).
Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los híbridos. La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos...
tracking img