Revisé la última versión de Ruby, para jugar un poco con los últimos cambios. Lo primero que intenté hacer fue llamar a un Ruby lambda/block/proc como lo haría con un Python invocable.¿Por qué no es posible la llamada lambda 1.9 de Ruby sin el punto al frente de los paréntesis?
a = lambda {|x| puts x}
a.call(4) # works, and prints 4
a[4] # works and prints 4
a.(4) # same
a(4) # undefined method 'a' for main:Object
¿Por qué la última llamada no es posible? ¿Alguna vez será?
¿Puedes explicar un poco el script lambda? – Geo
bien, cuando intenta invocar un método llamado 'blah()' y 'method_missing' se activa, comprueba si una lambda llamada' blah' está definida en el contexto apropiado. Si se define una lambda así, simplemente invoca lambda utilizando la sintaxis habitual de 'blah.call', también pasa junto con los parámetros que se dieron – horseyguy
. Creo que es un hack impresionante. Gracias. – Geo