Ho controllato l'ultima versione di Ruby, per giocare un po 'con le ultime modifiche. La prima cosa che ho provato a fare è stato chiamare un lambda/block/proc Ruby come faresti con un Python callable.Perché la chiamata lambda Ruby 1.9 non è possibile senza il punto davanti alle parentesi?
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
Perché non è l'ultima chiamata possibile? Sarà mai?
puoi spiegare un po 'lo script di lambda? – Geo
ok, quando provate a invocare un metodo chiamato 'blah()' e 'method_missing' viene attivato controlla se un lambda chiamato' blah' è definito nel contesto appropriato. Se tale lambda è definito, invoca semplicemente il lambda usando la consueta sintassi 'blah.call', passa anche qualsiasi parametro che è stato dato – horseyguy
Penso che questo sia un tremendo trucco. Grazie. – Geo