Scheme

Solo disponible en BuenasTareas
  • Páginas : 8 (1863 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de febrero de 2011
Leer documento completo
Vista previa del texto
Programación Funcional
1. Introducción

De ahora en adelante veremos los modelos de programación declarativos, los cuales no se basan tanto en la parte operativa o dependiente del estado. Ahora veremos los modelos de programación considerados más elegantes, los paradigmas de programación son el paradigma Funcional y Lógico. Para el desarrollo del modelo de Programación Funcional utilizaremosel lenguaje de Programación Scheme y para el modelo de Programación Lógica se usara Prolog. 2. Programación funcional

La programación funcional es un paradigma de programación declarativa basado en la utilización de funciones y expresiones a diferencia de la programación imperativa que usa variables y acceso a memoria explicita. Considerada la implementación práctica de las ideas de AlonzoChurch. Su creación es debida a las necesidades (no cubiertas por los lenguajes imperativos) 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. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado a mediados de1930 para investigar la definición de función, la aplicación de las funciones y la recursión. El objetivo del diseño de un lenguaje de programación funcional es imitar las funciones matemáticas hacia el mayor número de aplicaciones posibles. En comparación con el modelo imperativo podemos decir que, en la programación funcional las variables y sentencias de asignación no son necesarias, larecursión es usada para las iteraciones, la evaluación de una función siempre produce el mismo resultado bajo los mismos parámetros. En programación funcional, un programa consta de: • • • Un conjunto de operaciones primitivas cuyo significado está predeterminado en el sistema. Por ejemplo, la suma de números enteros, la resta, el producto, etc. Un conjunto de definiciones de función, establecidas por elprogramador, que eventualmente emplearán las operaciones primitivas. Por ejemplo, la función factorial. Un dato de entrada (entendido como la aplicación de una de las funciones definidas sobre otros datos). Por ejemplo: fact(2*fact(2)).

La ejecución del programa funcional consiste en el cálculo del valor asociado al dato de entrada de acuerdo con las definiciones dadas para las funciones en elprograma. El proceso de cálculo de dicho valor se conoce como evaluación del dato de entrada. 3. Características

Entre las características de la Programación funcional podemos mencionar: • • • • • • • Es un paradigma matemático formal. No hay asignaciones, el valor se conserva. No hay noción de posición de memoria, no hay necesidad de una instrucción de asignación. No existe la secuencia, perosi la estructura condicional Los bucles se modelan a través de la recursividad ya que no hay manera de incrementar o disminuir el valor de una variable. La propiedad más importante es la transparencia referencial, las funciones no tienen efectos secundarios. Su elemento básico es la función. Las funciones son “valores de primera clase”, es decir que se pueden utilizar en cualquier lugar que seaválido utilizar un valor. En particular, pueden ser ingresadas como parámetros, o devueltas como resultado. • • • 4. Existen “Funciones de Orden Superior” que le dan generalidad y mayor flexibilidad a los programas. Posee funciones anónimas La estructura de datos principal es la lista.

Historia

Los orígenes de la programación funcional pueden rastrearse al matemático Alonzo Church, quetrabajaba en la Universidad de Princeton, y, al igual que otros matemáticos de allí, estaba interesado en la matemática abstracta. Las preguntas que se hacía eran por ejemplo: si dispusiésemos de máquinas de un ilimitado poder de cómputo, ¿qué tipos de problemas se podrían solucionar?, o ¿se pueden resolver todos los problemas? Para contestar este tipo de preguntas, Church desarrolló un lenguaje...
tracking img