warning type subsettable not error coord closure object functional-programming closures imperative

object - type - cierres y objetos



object of type ''closure'' is not subsettable shiny (5)

La programación funcional ... es como el clásico (tipo de Mark Twain ). Mientras leía otros artículos sobre el SICP, donde la gente habla sobre el gran impacto que tuvieron los cierres al pensar, me acordé de esto, que leí hace años.

Los cierres son objetos del pobre Los objetos son el cierre del pobre

(No se puede recordar la fuente exacta, pero fueron los programadores rosetta stone, o zen de la programación, o tau de la programación ... google se ha vuelto tan lleno que no puede ir a la fuente original)

Así que los co-programadores ... ¿Cuál es tu opinión ... son el cierre de algo que siempre estabas perdiendo ... o solo un poco de azúcar sintáctico, que un preprocesador puede hacer!


He estado usando cierres durante mucho tiempo en Javascript. Algunas veces formaban un ''objeto'', otras veces son una forma útil de proporcionar datos de instancia a una devolución de llamada.

En lo que a mí respecta, son otra herramienta útil en la caja pero va más allá del azúcar. Sugar se relaciona con algo que podría razonablemente hacer con otra sintaxis un tanto más complicada. Conseguir cierres en un idioma que no los respalde directamente sería muy difícil.


Los cierres son mucho más que azúcar sintáctico, aunque creo que depende un tanto de tu definición de "azúcar sintáctico".

Para mí, Java 1.5 para cada uno era azúcar sintáctica, pero, por ejemplo, los bloques de Ruby van mucho más allá. Los cierres proporcionan un nivel conveniente de abstracción, que es útil para la declaración de intenciones implícita, un gran paso hacia la sintaxis DSL-ish.


Los cierres y los bloques anónimos son construcciones de programación bastante importantes y aprovecho la falta de rapidez en Java, C ++, C y sobre cualquier otro lenguaje que les falte. Son especialmente útiles con cosas asincrónicas y eventos. También hacen que las funciones de toma de funciones sean más agradables de usar y brindan opciones para hacer más cosas sin una sintaxis adicional. (ver: smalltalk y esquema)


http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html

El venerable maestro Qc Na estaba caminando con su alumno, Anton. Esperando llevar al maestro a una discusión, Anton dijo: "Maestro, he oído que los objetos son algo muy bueno, ¿es cierto?" Qc Na miró compasivamente a su alumno y respondió: "Alumno insensato: los objetos son simplemente cierres de pobres".

Castigado, Anton se despidió de su amo y regresó a su celda con la intención de estudiar los cierres. Leyó cuidadosamente toda la serie de papeles "Lambda: The Ultimate ..." y sus primos, e implementó un pequeño intérprete Scheme con un sistema de objetos basado en el cierre. Aprendió mucho y esperaba informar a su maestro sobre su progreso.

En su siguiente caminata con Qc Na, Anton intentó impresionar a su maestro diciendo: "Maestro, he estudiado diligentemente el asunto, y ahora entiendo que los objetos son verdaderamente cierres de pobres". Qc Na respondió golpeando a Anton con su bastón, diciendo "¿Cuándo aprenderás? Los cierres son un objeto de los pobres". En ese momento, Anton se iluminó.

- Anton van Straaten


los cierres son como objetos en OO languages. Pero los lenguajes funcionales carecen de subtipificación y herencia.