में आदेश देने का क्या ऑपरेटरों =:=
, ==
, <
, >
, =<
, >=
साथ Erlang में कार्यों की तुलना करने के क्या मतलब है? मैं दुभाषिया के साथ खेल रहा था और इन परिणामों को मिला:समारोह समानता/erlang
Eshell V5.9.2 (abort with ^G)
1> X = fun() -> {} end.
#Fun<erl_eval.20.82930912>
2> Y = fun() -> {} end.
#Fun<erl_eval.20.82930912>
3>
3> {X == X, X =:= X}.
{true,true}
4> {X >= X, X =< X}.
{true,true}
5> {X > X, X < X}.
{false,false}
6>
6> {X == Y, X =:= Y}.
{true,true}
7> {X >= Y, X =< Y}.
{true,true}
8> {X > Y, X < Y}.
{false,false}
यह समझ में आता है। ऐसा लगता है कि यह दो कार्यों के सार वाक्यविन्यास पेड़ की तुलना कर रहा है।
लेकिन इस सत्र में X
और Y
को एक बार फिर से परिभाषित किया गया है लेकिन अलग हैं, अब भी X<Y
?
Eshell V5.9.2 (abort with ^G)
1> X = fun() -> {} end.
#Fun<erl_eval.20.82930912>
2>
2> {X == X, X =:= X}.
{true,true}
3> {X >= X, X =< X}.
{true,true}
4> {X > X, X < X}.
{false,false}
5>
5> Y = fun() -> {} end.
#Fun<erl_eval.20.82930912>
6>
6> {X == Y, X =:= Y}.
{false,false}
7> {X >= Y, X =< Y}.
{false,true}
8> {X > Y, X < Y}.
{false,true}
तो यह है कि यह एएसटी या अद्वितीय संदर्भ की किसी भी तरह की तुलना नहीं कर रहा है लग रहा है। शायद यह संदर्भों की तुलना कर रहा है, बस कुछ अनुकूलन हो रहा है और X
और Y
एक ही संदर्भ के लिए बाध्य हो? यदि इसके लिए कुछ स्पष्टीकरण है, तो विभिन्न वीएम या विभिन्न नोड्स में क्या होता है?
Erlang R15B01 पर मैं '{सच, सच}' '6 में > '। –
R15B02 को '6>> यहां भी' {true, true} 'मिला। – halfelf
R14B02 '{true, true} 'पंक्ति में' 6> 'भी। – Tilman