En la Ruby Programming Language, Capítulo 6 (segundo párrafo) afirman:funciones de Ruby vs métodos
Muchos lenguajes distinguen entre funciones, que no tienen objeto asociado, y métodos, que se invocan en un receptor objeto. Debido a que Ruby es un lenguaje puramente orientado a objetos, todos los métodos son métodos verdaderos y son asociados con al menos un objeto.
Y luego, en la mitad del párrafo sexto:
Ambos procsos y lambdas son funciones en lugar de los métodos invocados en un objeto .
Estoy un poco confundido acerca de estas afirmaciones. ¿Ruby es verdaderamente puro OO, y por lo tanto no tiene funciones que no están asociadas con objetos (si esa es una definición válida de OO puro), o son procs/lambdas asociados con el objeto Proc? ¿Cuál es la diferencia entre funciones y métodos en Ruby?
Se agradecerá cualquier ayuda en el análisis y la comprensión de esto.
Sí, proc y lambdas son objetos Proc, pero ¿qué quieren decir con "son funciones en lugar de métodos". ¿Y cuál es la distinción? –
Quiere decir que la oración en el medio del sexto párrafo es inexacta. –
La diferencia es que, casi de manera universal, los procesos y lambdas solo se usan para su método asociado de "llamada". Nadie almacena métodos o valores adicionales con ellos. Entonces, como dice Kaptajn Kold, podemos usarlos ya que usaríamos funciones de primer orden en otros idiomas, aunque todavía sean objetos. – rampion