¿Cómo se relacionan los cierres del lenguaje de programación con el cierre en matemáticas?

No creo que haya ninguna relación profunda.

Personalmente, siempre supuse que los cierres en FP se llamaban así por alusión al cierre transitivo en la teoría de conjuntos. Particularmente, un cierre tiene todos los enlaces en todos los entornos anidados de una función, similar a la idea de un conjunto transitivo (es decir, el cierre transitivo de [math] \ in [/ math] para algún conjunto).   Ambas ideas modelan cosas similares, pero la relación no parece particularmente profunda o útil.

Sin embargo, buscar la etimología del cierre en FP en Wikipedia ofrece una historia diferente. Aparentemente, “variable abierta” solía ser sinónimo de “variable libre” y “variable cerrada”, sinónimo de “variable ligada”. Entonces un cierre cerró todas las variables abiertas en una función. Este uso ya no es muy común, por lo que la palabra “cierre” tiene menos sentido a la luz de esto.

En total, todavía me gusta más mi explicación original. Incluso si no necesariamente coincide con el historial :).

En realidad, Alfred Tarski agregó la estrella de Kleene como una operación adicional a las álgebras de relaciones (abstractas) para denotar el cierre reflexivo- transitivo R ‘, que también se puede usar para tomar el cierre transitivo de las expresiones de ruta (cf. xpath).

I / internet es un ejemplo de cierre transitivo de redes / IP (citando a Tony Li) y encontrar el cierre transitivo de un conjunto se relaciona con el algoritmo de Warshall, que proviene de la familia de algoritmos que incluye la ruta mínima de Dijkstra, que se utilizan para encontrar la ruta más corta / ciclo en gráficos o redes.

Pero eso sería sobre computabilidad, integridad de Turing, trabajo en red, estructura de datos, algoritmo y no lenguaje de programación en sentido estricto.

Donde, en términos muy crudos, significa función dentro de una función.