Diferencia entre revisiones de «Programación funcional»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
m Revertidos los cambios de 213.98.99.53 (disc.) a la última edición de Surfaz
Línea 14: Línea 14:


== Lenguajes funcionales ==
== Lenguajes funcionales ==
Los lenguajes funcionales puros, cabe destacar a [[Haskell]] y [[Miranda (lenguaje)|Miranda]]. Los lenguajes funcionales híbridos más conocidos son [[Lenguaje de programación Scala|Scala]], [[Lisp]], [[Scheme]], [[Ocaml]], [[SAP]] y [[Standard ML]] (estos dos últimos, descendientes del lenguaje [[ML]]).
Entre los lenguajes funcionales puros, cabe destacar a [[Haskell]] y [[Miranda (lenguaje)|Miranda]]. Los lenguajes funcionales híbridos más conocidos son [[Lenguaje de programación Scala|Scala]], [[Lisp]], [[Scheme]], [[Ocaml]], [[SAP]] y [[Standard ML]] (estos dos últimos, descendientes del lenguaje [[ML]]).
[[Erlang]] es otro lenguaje funcional de [[programación concurrente]].
[[Erlang]] es otro lenguaje funcional de [[programación concurrente]].
[[Lenguaje R|R]] también es un lenguaje funcional dedicado a la estadística.<ref>[http://preguntas.barrapunto.com/article.pl?sid=08/01/31/2338233 Barrapunto | Programación funcional para el resto de nosotros<!-- Título generado por un bot -->]</ref>
[[Lenguaje R|R]] también es un lenguaje funcional dedicado a la estadística.<ref>[http://preguntas.barrapunto.com/article.pl?sid=08/01/31/2338233 Barrapunto | Programación funcional para el resto de nosotros<!-- Título generado por un bot -->]</ref>

Revisión del 20:10 9 feb 2010

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

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