Entiendo muy claramente la diferencia entre las técnicas de programación funcionales e imperativas. Pero hay una tendencia generalizada a hablar de "lenguajes funcionales", y esto realmente me confunde.La "programación funcional" tiene un significado claro, pero ¿el "lenguaje funcional"?
Por supuesto algunos lenguajes como Haskell son más hospitalario a la programación funcional que otros lenguajes como C. Pero incluso el primero hace de E/S (sólo se mantiene en un gueto). Y puede escribir programas funcionales en C (es absurdamente más difícil). Entonces tal vez es solo una cuestión de grado.
Aún así, incluso como una cuestión de grado, ¿qué significa cuando alguien llama a Scheme un "lenguaje funcional"? La mayoría del código Scheme que veo es imprescindible. ¿Es solo que Scheme hace que sea fácil escribir en un estilo funcional si lo desea? Lo mismo hacen Lua y Python. ¿Son ellos también "idiomas funcionales"?
Estoy (realmente) no tratando de ser un policía de idiomas. Si esto es solo una forma de hablar suelta, está bien. Estoy tratando de averiguar si tiene algún significado definido (incluso si es un significado de grado) que no estoy viendo.
wiki de la comunidad? – jldupont
En realidad, deseo que los niños jugando con Perl/Python/Ruby/C# dejen de etiquetar sus preguntas '' programación funcional' tan pronto como haya una función anónima en la fea pila de signos de puntuación que producen como ejemplo de código. No me interesan sus preguntas, pero algunas de las preguntas que me interesan no tienen más que la etiqueta 'programación funcional' para distinguirlas. Como usted señala, debería ser un lenguaje funcional, pero nadie usa esa etiqueta. –
@Pascal - No estoy de acuerdo por completo. Hay muchas técnicas de programación funcional que son útiles en una variedad de idiomas que no son "lenguajes funcionales puros". Es lo mismo que programar de forma orientada a objetos en un lenguaje que permite múltiples paradigmas. Si le interesan los lenguajes funcionales puros, tal vez debería haber una etiqueta separada para eso ... o buscar las etiquetas para esos idiomas específicos. – RHSeeger