En son değişikliklere sahip olmak için en yeni Ruby sürümünü inceledim. Yapmaya çalıştığım ilk şey, bir Ruby lambda/block/proc'u, bir Python ile yapılabildiği gibi çağırmaktı.Neden Ruby 1.9 lambda çağrıları parantezin önünde nokta olmadan mümkün değil?
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
Neden son çağrı mümkün değil mi? Hiç olacak mı?
lambda betiğini biraz açıklayabilir misiniz? – Geo
tamam, 'blah()' adında bir yöntemi çağırmaya çalıştığınızda ve 'method_missing' tetiklendiğinde, uygun bağlamda 'blah' adı verilen bir lambda olup olmadığını kontrol eder. Eğer böyle bir lambda tanımlanmışsa, o zaman lambdayı her zamanki 'blah.call' sözdizimini kullanarak çağırır, ayrıca – horseyguy
verilen parametreler boyunca geçer, bu harika bir hack olduğunu düşünüyorum. Teşekkür ederim. – Geo