Diferencia entre revisiones de «Programación funcional»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Nicop (discusión · contribs.)
m Revertidos los cambios de 200.92.73.121 a la última edición de MastiBot
Línea 24: Línea 24:


Entre otros lenguajes que se podrían utilizar para programación funcional se podrían incluir a [[Perl]], pues, aunque es un lenguaje de propósito muy general, se pueden realizar programas usando exclusivamente funciones definidas por el usuario. Así como [[Python]], como lenguaje que incorpora el paradigma funcional.
Entre otros lenguajes que se podrían utilizar para programación funcional se podrían incluir a [[Perl]], pues, aunque es un lenguaje de propósito muy general, se pueden realizar programas usando exclusivamente funciones definidas por el usuario. Así como [[Python]], como lenguaje que incorpora el paradigma funcional.
Pero la verdad no se jaja


==Véase también==
==Véase también==

Revisión del 20:02 25 abr 2009

La Programación funcional es un paradigma de programación declarativa basado en la utilización de funciones matemáticas.

Historia

Sus orígenes se remontan al cálculo lambda (o -cálculo), una teoría matemática elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad. Un lenguaje funcional es, a grandes rasgos, azúcar sintáctica para el Cálculo Lambda.

Utilidad

El objetivo es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa, y evitando el concepto de estado del cómputo. La secuencia de computaciones llevadas a cabo por el programa se regiría única y exclusivamente por la reescritura de definiciones más amplias a otras cada vez más concretas y definidas, usando lo que se denominan "definiciones dirigidas".

Características

Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas 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 de variables 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 dogmáticos que los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional híbrido.

Lenguajes funcionales

Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los lenguajes funcionales híbridos más conocidos son Scala, Lisp, Scheme, Ocaml, SAP y Standard ML (estos dos últimos, descendientes del lenguaje ML). Erlang es otro lenguaje funcional de programación concurrente. R también es un lenguaje funcional dedicado a la estadística.[1]​ Recientemente Microsoft Research está trabajando en el lenguaje F# (Functional#).

Entre otros lenguajes que se podrían utilizar para programación funcional se podrían incluir a Perl, pues, aunque es un lenguaje de propósito muy general, se pueden realizar programas usando exclusivamente funciones definidas por el usuario. Así como Python, como lenguaje que incorpora el paradigma funcional.

Véase también


Referencias

  1. Barrapunto | Programación funcional para el resto de nosotros