class A
def x
$COUNTER += 1
1
end
end
class B
def x
$COUNTER += 1
3
end
end
class C
def x
$COUNTER += 1
2
end
end
def f o
o.x
end
$COUNTER = 0
p [A.new, B.new, C.new].sort_by &method(:f)
p $COUNTER
def g a, b
a.x <=> b.x
end
$COUNTER = 0
p [A.new, B.new, C.new].sort &method(:g)
p $COUNTER
Y2xhc3MgQQogIGRlZiB4CiAgICAkQ09VTlRFUiArPSAxCiAgICAxCiAgZW5kCmVuZAoKY2xhc3MgQgogIGRlZiB4CiAgICAkQ09VTlRFUiArPSAxCiAgICAzCiAgZW5kCmVuZAoKY2xhc3MgQwogIGRlZiB4CiAgICAkQ09VTlRFUiArPSAxCiAgICAyCiAgZW5kCmVuZAoKCmRlZiBmIG8KICBvLngKZW5kCiRDT1VOVEVSID0gMApwIFtBLm5ldywgQi5uZXcsIEMubmV3XS5zb3J0X2J5ICZtZXRob2QoOmYpCnAgJENPVU5URVIKCmRlZiBnIGEsIGIKICBhLnggPD0+IGIueAplbmQKJENPVU5URVIgPSAwCnAgW0EubmV3LCBCLm5ldywgQy5uZXddLnNvcnQgJm1ldGhvZCg6ZykKcCAkQ09VTlRFUg==