どのようにProc#==
評価されますか?RDocによると:
prc==other_proc→trueまたはfalse
prcがother_procと同じオブジェクトである場合、または両方が同じ本体を持つprocである場合、trueを返します。
しかし、何が「同じ体」を持っていると見なされるのかは明らかではありません。1つの条件は、アリティが同じでなければならないということのようです。
->{} == ->{} # => true
->{} == ->x{} # => false
->x{} == ->x{} # => true
->x{} == ->y{} # => true
->x{} == ->y,z{} # => false
しかし、それだけではありません。RDocが言うように、体は重要です:
->{nil} == ->{nil} # => true
->{nil} == ->{false} # => false
->{false} == ->{false} # => true
しかし同時に、procが完全に評価されていないようです。
->{} == ->{nil} # => false
->{false} == ->{1 == 2} # => false
体はどの程度評価されていますか?