Paradigma de programación: exploración preliminar de la programación funcional

Introducir

Modo de estrategia vs programación funcional

Al introducir expresiones Lambda en Java8, desde la codificación rígida al modo de estrategia, y luego a la optimización interna de la clase paso a paso. Teóricamente, las funciones que utilizamos con expresiones Lambda también se pueden implementar con patrones de estrategia y funciones anónimas, pero ¿por qué deberíamos introducir expresiones Lambda?

Lo que entiendo temporalmente incluye los siguientes aspectos:

  1. El código no es fácil de leer y la estructura es compleja;
  2. Cada estrategia adicional requiere una nueva clase de implementación, que no es fácil de mantener;
  3. Si hay 10,000 situaciones, ¿desea crear 10,000 nuevas estrategias o clases anónimas?

La programación funcional puede resolver fácilmente los problemas anteriores. Las ventajas y la aplicación de la programación funcional:

  • Fácil de refactorizar, depurar y probar
  • Aplicación general: cálculo matemático, inteligencia artificial.
  • Aplicación local: ha florecido en todas partes

El concepto

——Programando con funciones, debe volver al concepto de la función misma:

Una función, en matemáticas, es una correspondencia entre dos conjuntos: cada elemento en el conjunto de valores de entrada puede corresponder a un elemento en el único conjunto de valores de salida. Por ejemplo , la relación entre el número real x y su cuadrado x 2 es una función. Si se usa 3 como valor de entrada de esta función, el valor de salida resultante es 9. -Wikipedia

Nota:

  • Para distinguir el concepto de la forma de expresión La
    función enfatiza una relación de mapeo y la implementación específica puede tener muchas formas: para el lado de la aplicación de la función, la implementación específica puede ser ignorada.
  • Una función puede tener diferentes expresiones. La expresión de la
    relación cuadrada puede ser: y = x 2 , expansión polinómica, expansión de Taylor, etc.

Caracteristicas

Programación funcional
Sin efectos secundarios (funciones puras): no modifica el estado del programa

  • Cita transparente

Ciudadano de primera clase

  • Pasar como parámetro
  • Devolver como resultado
  • Almacenar en estructura de datos

Funciones de orden superior: pueden simplificar el procesamiento de parámetros complejos

  • Recibir al menos una función como parámetro
  • El resultado es una función.

Solicitud

  1. Cierre: un
    ejemplo de cierre en una función especial js que hace referencia a una variable de ámbito externo
<script>
var global = "outer"

function outer(){
	var global = "inner";
	var a = 5
	function inner(){
		console.log(global)
		console.log(a++)
	}
	return inner;
}

var r = outer();
r()
</script>
  1. Curry: la técnica de modularización de funciones y reutilización de código para transformar una función multiparamétrica en una serie de procesos que solo aceptan un parámetro
Publicado 159 artículos originales · elogiados 225 · 210,000 visitas

Supongo que te gusta

Origin blog.csdn.net/lyg673770712/article/details/88043237
Recomendado
Clasificación