• Barajar
    Activar
    Desactivar
  • Alphabetizar
    Activar
    Desactivar
  • Frente Primero
    Activar
    Desactivar
  • Ambos lados
    Activar
    Desactivar
  • Leer
    Activar
    Desactivar
Leyendo...
Frente

Cómo estudiar sus tarjetas

Teclas de Derecha/Izquierda: Navegar entre tarjetas.tecla derechatecla izquierda

Teclas Arriba/Abajo: Colvea la carta entre frente y dorso.tecla abajotecla arriba

Tecla H: Muestra pista (3er lado).tecla h

Tecla N: Lea el texto en voz.tecla n

image

Boton play

image

Boton play

image

Progreso

1/12

Click para voltear

12 Cartas en este set

  • Frente
  • Atrás
¿Qué es la programación funcional?
Es un paradigma de programación declarativa basado en el uso de funciones matemáticas, en contraste con la programación imperativa, que enfatiza los cambios de estado mediante la mutación de variables.
¿Cuál es su 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 evitar el concepto de estado del cómputo.
Características
Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones.
No existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración.
Primera clase y orden superior
Son funciones que pueden tomar otras funciones como argumentos o devolverlos como resultados.
Están estrechamente relacionadas con las funciones de primera clase en las cuales las funciones de orden superior y las funciones de primera clase pueden recibir como argumentos y resultados otras funciones.
Puras
No tienen efectos secundarios. Esto significa que las funciones puras tienen varias propiedades útiles, muchas de las cuales pueden ser utilizadas para optimizar el código.
Recursivas
Las funciones recursivas se invocan a sí mismas, permitiendo que una operación se realice una y otra vez hasta alcanzar el caso base. Aunque algunas recursividades requieren el mantenimiento de una pila, la recursividad mediante una cola puede ser reconocida y optimizada mediante un compilador dentro del mismo código utilizado, para implementar las iteraciones en un lenguaje imperativo.
Evaluación estricta frente a la no estricta
Los lenguajes funcionales pueden ser clasificados por el hecho de usar evaluación estricta(eager) o no estricta(lazy), conceptos que hacen referencia a cómo los argumentos de las funciones son procesados cuando una expresión está siendo evaluada.
Tipos de sistemas
El uso de tipos de datos algebraicos y la coincidencia de patrones hace que la manipulación de estructuras de datos complejas convenientes y expresivos, la presencia de comprobaciones estrictas de tipos en tiempo de compilación hace que los programas sean más fiables, mientras que la inferencia de tipos libera al programador de la necesidad de declarar manualmente los tipos para el compilador.
Programación funcional y no funcional
Es posible utilizar un estilo de programación funcional en lenguajes que tradicionalmente no se consideran lenguajes funcionales. Por ejemplo, tanto D y Fortran95 se apoyan explícitamente en funciones puras. Funciones de primera clase, se han añadido lentamente a los lenguajes principales.
Ventajas y desventajas de la programación funcional
Ventajas:
Ausencia de efectos colaterales
Proceso de depuración menos problemático
Pruebas de unidades más confiables
Mayor facilidad para la ejecución concurrente

Desventajas:
Utiliza matemáticas enfocadas a la programación, que son más complicadas.
Complejidad de la recursividad.
Muy diferente al paradigma común (orientado a objetos) y puede costar habituarse.
Ejemplos de lenguajes
Haskell y Miranda.
Scala, Lisp, Clojure, Scheme, Ocaml, SAP y Standard ML.
Perl, Python, Ruby
Aplicación en la actualidad
Un ejemplo de lenguaje de programación funcional usado en el ámbito industrial es Erlang, el cual fue desarrollado para poner en práctica sistemas de tolerancia a fallos en las telecomunicaciones. Importantes empresas como WhatsApp, Facebook, o T-Mobile optaron por Erlang como lenguaje en alguno de sus desarrollos. Otro ejemplo de uso de los lenguajes de programación funcionales en la industria es el caso del uso del Scheme de Lisp, que fue usado como base en el desarrollo de aplicaciones para los primeros ordenadores de la firma Apple Macintosh. De hecho, hoy en día, está siendo usado para desarrollo de sistemas de simulación y de control de telescopio.