¿Qué es el registro funcional?
La programación funcional (también conocida como CE) es una forma de pensar en la creación de software mediante la creación de funciones puras. Evita los conceptos de estados compartidos, datos variables observados en la Programación Orientada a Objetivos.
Los lenguajes funcionales incluyen expresiones y declaraciones en lugar de la ejecución de declaraciones. Por lo tanto, a diferencia de otros procedimientos que se basan en el estado local o global, la salida de valor en CE depende de los argumentos presentados a la función únicamente.
En este tutorial, aprenderá:
Características del programa funcional
- El método de programación funcional se centra en los resultados, no en el proceso.
- Se hace hincapié en lo que se va a calcular
- Los datos son inamovibles
- Programación funcional Deshabilitar el problema en sus funciones
- Se basa en el concepto de funciones matemáticas que utilizan expresiones condicionales y reciclaje para realizar el cálculo.
- No admite iteraciones como declaraciones de bucle y declaraciones condicionales como If-Else
Historia de los programas funcionales
- La base del registro funcional es el cálculo Lambda. Fue desarrollado en la década de 1930 para realizar función funcional, definición y reciclaje.
- LISP fue el primer lenguaje de programación funcional. Fue diseñado por McCarthy en 1960
- A finales de la década de 1970, los investigadores de la Universidad de Edimburgo definieron el ML (Meta Language)
- A principios de los 80, el lenguaje de Hope ofrece tipos de datos algebraicos para el reciclaje y el razonamiento justo.
- En 2004 Innovación del lenguaje funcional ‘Scala’.
Idiomas de registro funcionales
El propósito de cualquier lenguaje CE es imitar las funciones matemáticas. Sin embargo, el proceso de cálculo básico es diferente en la programación funcional.
Estos son algunos de los lenguajes de programación funcional más notables:
- Haskell
- SML
- Clojure
- Escala
- Erlang
- Limpio
- F #
- ML / OCaml Lisp / Esquema
- XSLT
- SQL
- Mathematica
Terminología y conceptos básicos de registro funcional
Datos inamovibles
Datos inamovibles significa que debería poder crear fácilmente estructuras de datos en lugar de modificar las existentes.
Transparencia favorable
Los programas funcionales deben realizar las operaciones exactamente como lo hicieron por primera vez. Así sabrá qué pudo haber sucedido o no durante la finalización del programa y sus efectos secundarios. En término CE se denomina transparencia de referencia.
Modularidad
El diseño modular aumenta la productividad. Los módulos pequeños se pueden codificar rápidamente y tienen más posibilidades de reutilizarse y sin duda conducirán a un desarrollo más rápido del programa. Aparte de eso, los módulos se pueden probar por separado, lo que le ayuda a reducir el tiempo dedicado a las pruebas unitarias y la depuración.
Sustentabilidad
La sostenibilidad es un término simple que facilita el mantenimiento de los programas de CE, ya que no tiene que preocuparse por cambiar accidentalmente nada fuera de una función en particular.
Función de primera clase
‘Función de primera clase’ es una definición aplicada a una entidad de lenguaje de programación cuyo uso no está restringido. Por lo tanto, las funciones de clase mundial se pueden ver en cualquier parte del programa.
Cerrado
El cierre es una función interna que puede acceder a variables de funciones parentales, incluso después de que se haya completado la función principal.
Funciones de orden superior
Las funciones de orden superior toman otras funciones como argumentos o las devuelven como resultados.
Las funciones de orden superior permiten aplicaciones a tiempo parcial o de curry. Esta técnica aplica una función a sus argumentos de uno en uno, porque cada aplicación devuelve una nueva función que acepta el siguiente argumento.
Función pura
Una ‘función pura’ es una función cuyas entradas se declaran como entradas y ninguna de las cuales debe ocultarse. Las salidas también se declaran como salidas.
Las funciones puras se desempeñan en su parámetro. No es efectivo si no devuelve nada. Además, proporciona la misma salida para los parámetros particulares
Ejemplo:
Function Pure(a,b) { return a+b; }
Funciones impuras
Las funciones impuras son todo lo contrario de las puras. Tienen entradas o salidas ocultas; se llama impuro. Las funciones impuras no se pueden utilizar ni probar solas porque son dependientes.
Ejemplo
int z; function notPure(){ z = z+10; }
Composición de funciones
Combinar 2 o más funciones para crear una nueva tiene una composición funcional.
Estados compartidos
Los estados compartidos son un concepto importante en el registro de OPW. Básicamente, está agregando propiedades a las cosas. Por ejemplo, si se trata de un objeto de disco duro, la capacidad de almacenamiento y el tamaño del disco se pueden agregar como propiedades.
Efectos secundarios
Se conocen los efectos secundarios de cualquier cambio de estado que ocurra fuera de una función. El objetivo principal de cualquier lenguaje de programación CE es minimizar los efectos secundarios, separándolos del resto del código del software. En la programación CE es crucial eliminar los efectos secundarios del resto de la lógica de programación.
Ventajas del programa de implementación
- Te permite evitar problemas confusos y errores en el código.
- Más fácil de probar y ejecutar pruebas unitarias y depurar el código CE.
- Procesamiento paralelo y consenso
- Implementación de código activo y tolerancia a defectos
- Ofrece mejor modularidad con código más corto
- Mayor productividad del desarrollador
- Soporta con funciones anidadas
- Construcciones funcionales como Lazy Map y Lists, etc.
- Permite un uso eficaz de Lambda Calcalas
Limitaciones del programa operativo
- Un paradigma de programación funcional no es fácil, por lo que es difícil de entender para el principiante
- Es difícil mantener tantas cosas que surgen durante la codificación
- Requiere mucho ridículo y una amplia fijación ambiental.
- La reutilización es muy compleja y siempre necesita ser rehabilitada.
- Es posible que las cosas no reflejen el problema correctamente
Programación funcional frente a programación orientada a objetivos
Registro funcional | OOP |
---|---|
CE utiliza datos inamovibles. | OPW utiliza datos portátiles. |
El modelo de registro de aseguramiento continúa. | A continuación, se presenta un modelo de registro esencial. |
En lo que se enfoca es: «¿Qué estás haciendo en el programa?» | En lo que se centra es en «¿Cómo estás haciendo tu programación?» |
Soportes para registro paralelo. | No hay soporte para el registro paralelo. |
Sus funciones no tienen efectos secundarios. | Un método puede producir muchos efectos secundarios. |
El control de flujo se realiza mediante llamadas a funciones y llamadas a funciones para su reciclaje. | Se realiza un proceso de control de flujo mediante lazos y declaraciones condicionales. |
El orden de ejecución de las declaraciones no es muy importante. | La secuencia de ejecución de la declaración es importante. |
Admite «abstracción sobre datos» y «abstracción sobre transporte». | Solo admite «abstracción de datos». |
Conclusión
- La programación funcional o CE es una forma de pensar sobre la creación de software basada en algunos principios básicos definidos.
- Los conceptos de programación funcional se centran en los resultados, no en el proceso
- El propósito de cualquier lenguaje CE es imitar las funciones matemáticas
- Algunos lenguajes de programación funcional más notables: 1) Haskell 2) SM 3) Clojure 4) Scala 5) Erlang 6) Net
- Una ‘función pura’ es una función cuyas entradas se declaran como entradas y ninguna de las cuales debe ocultarse. Las salidas también se declaran como salidas.
- Datos inamovibles significa que debería poder crear fácilmente estructuras de datos en lugar de modificar las existentes
- Te permite evitar problemas confusos y errores en el código.
- El código funcional no es fácil, por lo que es difícil de entender para el principiante.
- CE utiliza datos inamovibles y OPW utiliza datos portátiles