Я проверил последнюю версию Ruby, чтобы немного поиграть с последними изменениями. Первое, что я пытался сделать, это вызвать Ruby lambda/block/proc так же, как и вы, используя Python.Почему не требуется вызов лямбды Ruby 1.9 без точки перед круглыми скобками?
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
Почему не последний звонок? Будет ли это когда-нибудь?
не могли бы вы немного объяснить скрипт лямбды? – Geo
ok, когда вы пытаетесь вызвать метод с именем 'blah()' и 'method_missing', он запускает его, чтобы проверить, определен ли лямбда под названием' blah' в соответствующем контексте. Если такая лямбда определена, то она просто вызывает лямбда, используя обычный синтаксис «blah.call», она также проходит по любым параметрам, которые были даны – horseyguy
Я думаю, что это потрясающий взломать. Спасибо. – Geo