रूबी के बीच अंतर Proc.new
और lambda
(या ->()
ऑपरेटर 1.9 में) के माध्यम से बनाई गई प्रक्रियाओं के बीच अंतर है। ऐसा प्रतीत होता है कि गैर-लैम्ब्डा प्रक्रिया ब्लॉक तर्कों में पारित सरणी को विभाजित करेगी; लैम्ब्डा के माध्यम से बनाई गई प्रक्रियाएं नहीं होती हैं।प्रो और लैम्ब्डा
p = Proc.new { |a,b| a + b}
p[[1,2]] # => 3
l = lambda { |a,b| a + b }
l[[1,2]] # => ArgumentError: wrong number of arguments (1 for 2)
क्या किसी के पास इस व्यवहार के पीछे प्रेरणा में कोई अंतर्दृष्टि है?
आप पहले से ही पता हो सकता है यह, लेकिन यह काम करता है: 'एल = लैम्ब्डा {| (ए, बी) | ए + बी}; एल [[1,2]] # => 3' – Phrogz