Red de conocimiento informático - Material del sitio web - Cómo crear un lenguaje de programación "funcional"

Cómo crear un lenguaje de programación "funcional"

Los lenguajes funcionales estrictos no tienen un comportamiento de asignación de variables y prestan atención a la transparencia de referencia. Es decir, si una expresión devuelve un valor, siempre devolverá un valor y no cambiará.

Los lenguajes funcionales a menudo se asocian con la recursividad. Esto se debe a que las estructuras de bucle generales, excepto los bucles infinitos como while(1), están asociadas con cambios en las expresiones, como while(n ) significa continuamente. modificar el valor de n hasta n == 0, lo cual debe evitarse en lenguajes funcionales.

La recursividad puede lograr cambios en los datos sin destruir la transparencia de la referencia llamando a funciones con diferentes parámetros. Y si se agrega la optimización de la recursividad de cola, el rendimiento de la recursividad es equivalente al de los bucles.

Otra característica de los lenguajes funcionales, que también es la clave para que un lenguaje se llame a sí mismo funcional, es que las funciones son "ciudadanos de primera clase", lo que significa que se pueden generar nuevas funciones dinámicamente en funciones como las operaciones. data, puede asignar funciones a variables, puede colocar funciones en estructuras de datos y puede usar funciones como parámetros y valores de retorno.

Los lenguajes que logran esta característica pueden denominarse en términos generales lenguajes de programación funcionales y no entran en conflicto con la programación procedimental y orientada a objetos.