#!/usr/bin/env ruby # This code comes from http://ruby-it.org/pages/Oggetti+Proc+e+Method # Check the page for copyright notice and explanations # primo metodo prc=Proc.new do |arg| ...codice.. end # secondo metodo prc=proc do |arg| ...codice.. end # terzo metodo prc=lambda do |arg| ...codice.. end >> p=Proc.new {|a,b| puts a,b } => # >> f=lambda {|a,b| puts a,b } => # >> p.call 1,2 1 2 => nil >> f.call 1,2 1 2 => nil >> p.call 1 1 nil => nil >> f.call 1 ArgumentError: wrong number of arguments (1 for 2) from (irb):2 from (irb):2:in `call' from (irb):6 p= lambda {|z| print z } p(10) # sintassi come in python o scheme p= lambda {|z| print z } p.call(10) # simile a funcall in Common LISP p= lambda {|z| print z } p[10] # equivalente a p.call(10) met=method(:nomemetodo) met=oggetto.method(:nomemetodo) def fun(a) a**2 end nil oggetto=method :fun # # oggetto.call(10) # 100 oggetto[10] # uguale a call()