preloader

January 1, 1 | 3 minutes read
Index of content

una función está completamente descrita por los datos que entran y los resultados que regresar). Esto también significa que es seguro reutilizar estas funciones en diferentes situaciones (ya que no tienen efectos secundarios inesperados). También debería ser más fácil para desarrollar, probar y mantener dichas funciones. 3. La recursividad es una estructura de control natural. Los lenguajes funcionales tienden a enfatizar la recursión como una forma de procesar estructuras que usarían alguna forma de construcciones en bucle en un lenguaje imperativo. Aunque normalmente puede implementar la recursión en lenguajes imperativos, a menudo es más fácil hacerlo en funciones lenguas nacionales. También vale la pena señalar que aunque la recursividad es muy expresivo y una excelente manera para que un programador escriba una solución a un problema, no es tan eficiente en tiempo de ejecución como la iteración. Sin embargo, cualquier expresión que pueda ser escrito como una rutina recursiva también se puede escribir usando construcciones de bucle. Los lenguajes de programación funcional a menudo incorporan optimización recursiva final de cola. ciones para convertir rutinas recursivas en iterativas en tiempo de ejecución. Un fin útil función recursiva es aquella en la que lo último que hace una función antes de regresar es llamarse a sí mismo. Esto significa que en lugar de invocar realmente la función y tener que configurar el contexto para esa función, debería ser posible reutilizar el contexto actual y tratarlo de manera iterativa como un bucle alrededor de ese rutina. Así, el programador se beneficia de la construcción recursiva expresiva y los beneficios de tiempo de ejecución de una solución iterativa utilizando el mismo código fuente. Este La opción normalmente no está disponible en los idiomas imperativos. 4. Bueno para crear prototipos de soluciones. Se pueden crear soluciones muy rápidamente para problemas algorítmicos o de comportamiento en un lenguaje funcional. Permitiendo así ideas y conceptos para ser explorados en un estilo de desarrollo rápido de aplicaciones. 5. Funcionalidad modular. La programación funcional es modular en términos de funcionalidad (donde los lenguajes orientados a objetos son modulares en la dimensión de componentes). Por lo tanto, se adaptan bien a situaciones en las que es natural querer para reutilizar o componer el comportamiento de un sistema. 6. La evitación del comportamiento basado en el estado. Como las funciones sólo se basan en su entradas y salidas (y evitar acceder a cualquier otro estado almacenado) exhiben un estilo de programación más limpio y simple. Esta evitación de las políticas basadas en el estado El comportamiento simplifica muchas áreas difíciles o desafiantes de la programación. (como los de las aplicaciones concurrentes). 7. Estructuras de control adicionales. Un fuerte énfasis en el control adicional estructuras como la coincidencia de patrones, la gestión del alcance de las variables, la recursividad de la cola optimizaciones etc 8. Concurrencia y datos inmutables. Como sistemas de programación funcional defienden las estructuras de datos inmutables, es más sencillo construir sistemas concurrentes. Esto se debe a que los datos que se intercambian y a los que se accede son inmutables. Por lo tanto, múltiples subprocesos o procesos en ejecución no pueden afectarse negativamente entre sí. El El modelo Akka Actor se basa en este enfoque para proporcionar un modelo muy limpio para múltiples sistemas concurrentes que interactúan. 9. Evaluación parcial. Dado que las funciones no tienen efectos secundarios, también se convierte en práctico para vincular uno o más parámetros a una función en tiempo de compilación y reutilizar estas funciones con valores enlazados como nuevas funciones que toman menos parámetros. 152 14 Introducción a la Programación Funcional

comments powered by Disqus

popular post

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.

Read More