- Barajar
ActivarDesactivar
- Alphabetizar
ActivarDesactivar
- Frente Primero
ActivarDesactivar
- Ambos lados
ActivarDesactivar
- Leer
ActivarDesactivar
Leyendo...
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
Boton play
Boton play
15 Cartas en este set
- Frente
- Atrás
¿Que es la programación funcional?
|
Paradigma de programación basado en el uso de funciones matemáticas, que describen una relación entre una entrada y una salida, donde el concepto de estado o variable se elimina completamente.
|
¿Cual es su utilidad?
|
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.
|
¿Cuales son las características principales?
|
Funciones puramente matemáticas, donde se verifican ciertas propiedades como el significado de una expresión depende únicamente del significado de sus subexpresiones), careciendo total de efectos colaterales.
No existencia de asignaciones de variables, la falta de construcciones estructuradas. |
Funciones de primera clase y de orden superior:
|
Tomar otras funciones como argumentos o devolverlos como resultados.
Recibir como argumentos y resultados otras funciones. Describe un concepto matemático de funciones que operan sobre otras funciones, describe las entidades del lenguaje de programación que no tienen ninguna restricción de su utilización. |
Funciones puras:
|
Utilizadas para optimizar el código.
Si no se utiliza el resultado de una expresión pura, se puede eliminar sin afectar a otras expresiones. Si una función pura se llama con parámetros que no causan efectos secundarios, el resultado es constante con respecto a la lista de parámetros. |
Recursividad:
|
Se invocan a sí mismas, permitiendo que una operación se realice una y otra vez hasta alcanzar el caso base.
Algunas requieren el mantenimiento de una pila, mediante una cola. |
Evaluación estricta frente a la no estricta:
|
Referencia a cómo los argumentos de las funciones son procesados cuando una expresión está siendo evaluada. La diferencia técnica está en la notación semántica de las expresiones que contienen cálculos fallidos o divergentes. Bajo la evaluación estricta, de cualquier término que contenga un sub-término fallido hará que este sea de por sí fallido.
|
Sistemas de tipos:
|
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.
|
La programación funcional en lenguajes no funcionales:
|
Es posible utilizar un estilo de programación funcional en lenguajes que tradicionalmente no se consideran lenguajes funcionales.
|
Ventajas de la programación funcional:
|
Ausencia de efectos colaterales
Proceso de depuración menos problemático Pruebas de unidades más confiables Mayor facilidad para la ejecución concurrente Simulación de estados Cuestiones de eficiencia Más fáciles de escribir, depurar y mantener que los lenguajes imperativos gracias a la ausencia de efectos de borde. |
Desventajas:
|
Se quedan cortos en potabilidad, riqueza de librerías,
interfaces con otros lenguajes y herramientas de depuración. |
¿Cuales son los lenguajes funcionales?
|
Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los lenguajes funcionales híbridos más conocidos son Scala, Lisp, Clojure, Scheme, Ocaml, SAP y Standard ML, Erlang . Perl.
|
Uso y Aplicación en la actualidad.
|
Ambito académico e industriales, sistemas comerciales o industriales. telecomunicaciones. como WhatsApp, Facebook, o T-Mobile, como base en el desarrollo de aplicaciones para los primeros ordenadores de la firma Apple Macintosh, sistemas de simulación y de control de telescopio. dentro de la investigación.
|
Diagrama
|
|
Ejemplo:
|
def val_rut(rut):
""" Valida un string con un RUT con el guion incluido, retornando cero si es valido. Ejemplo: print(val_rut("22222222-2")) """ return cmp(rut[-1], str((range(10) + ['K'])[ (11 - sum(map(lambda x: (int(x[0]) * x[1]), zip(reversed(rut[:-2]), (2 * range(2, 8))))) % 11)])) |