Skip to content

Instantly share code, notes, and snippets.

@aprescott
Created April 1, 2011 23:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aprescott/899026 to your computer and use it in GitHub Desktop.
Save aprescott/899026 to your computer and use it in GitHub Desktop.
Proc#== behaviour.
#
# 1.8.7 docs: http://ruby-doc.org/core-1.8.7/classes/Proc.html#M000463
#
# Return true if prc is the same object as other_proc, or if they are both procs with the same body.
#
RUBY_DESCRIPTION #=> ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux]
proc { 1 } == proc { 1 } # => false
proc { 1 + 1 } == proc { 1 + 1 } # => false
proc { |x| x } == proc { |x| x } # => false
proc { |x| x.foo } == proc { |x| x.foo } # => false
lambda { 1 } == lambda { 1 } # => false
lambda { 1 + 1 } == lambda { 1 + 1 } # => false
lambda { |x| x } == lambda { |x| x } # => false
lambda { |x| x.foo } == lambda { |x| x.foo } # => false
Proc.new { 1 } == Proc.new { 1 } # => false
Proc.new { 1 + 1 } == Proc.new { 1 + 1 } # => false
Proc.new { |x| x } == Proc.new { |x| x } # => false
Proc.new { |x| x.foo } == Proc.new { |x| x.foo } # => false
#
# 1.9.2 docs: http://ruby-doc.org/core/classes/Proc.html#M000554
#
# Return true if prc is the same object as other_proc, or if they are both procs with the same body.
#
RUBY_DESCRIPTION #=> ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
proc { 1 } == proc { 1 } # => true
proc { 1 + 1 } == proc { 1 + 1 } # => false
proc { |x| x } == proc { |x| x } # => true
proc { |x| x.foo } == proc { |x| x.foo } # => false
lambda { 1 } == lambda { 1 } # => true
lambda { 1 + 1 } == lambda { 1 + 1 } # => false
lambda { |x| x } == lambda { |x| x } # => true
lambda { |x| x.foo } == lambda { |x| x.foo } # => false
Proc.new { 1 } == Proc.new { 1 } # => true
Proc.new { 1 + 1 } == Proc.new { 1 + 1 } # => false
Proc.new { |x| x } == Proc.new { |x| x } # => true
Proc.new { |x| x.foo } == Proc.new { |x| x.foo } # => false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment