Jak ocenia się Proc#==
? RDoc mówi:Jak to jest "ProC# ==" oceniane?
prc == other_proc → prawda czy fałsz
Zwraca true jeśli prc jest taki sam przedmiot jak other_proc, lub jeśli są one zarówno procesy z tego samego ciała.
Ale nie jest jasne, co się liczy jako "to samo ciało". Wydaje się, że stan musi być taki sam:
->{} == ->{} # => true
->{} == ->x{} # => false
->x{} == ->x{} # => true
->x{} == ->y{} # => true
->x{} == ->y,z{} # => false
Ale jest coś więcej. Jak rdoc mówi, ciało ma znaczenie:
->{nil} == ->{nil} # => true
->{nil} == ->{false} # => false
->{false} == ->{false} # => true
Ale w tym samym czasie, to wygląda proc nie jest w pełni ocenić:
->{} == ->{nil} # => false
->{false} == ->{1 == 2} # => false
W jakim stopniu organizm oceniane?
Wyobrażam sobie, że kod w treści musi być taki sam, a nie wynik jego oceny. –
Myślałem, że analizowane drzewo źródłowe musi być identyczne, ale ... '-> {nil} == -> {nil; nil} # => true' A może pierwszy zero jest usuwany z drzewa źródłowego, ponieważ nie ma żadnego efektu lub znaczenia? –
Również: 'a, b = -> {}, -> {}; a == b # => prawda', ale 'a = -> {} [nowa linia] b = -> {}; a == b # => fałsz'. Zauważ, że znak nowej linii MUSI być znakiem nowej linii; jeśli używasz średnika, 'a' jest równe' b'. WTF rzeczywiście. –