<div dir="ltr">thanks,I got it!!!<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 10, 2019 at 7:20 PM Björn Gustavsson <<a href="mailto:bjorn@erlang.org">bjorn@erlang.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, May 10, 2019 at 12:00 PM Monk Boy <<a href="mailto:boyofmonk@gmail.com" target="_blank">boyofmonk@gmail.com</a>> wrote:<br>
><br>
> Hi<br>
><br>
> When compile the code , I got a message:<br>
><br>
> ```<br>
> src/http_qmonitor.erl:58: Warning: the call to node/0 has no effect<br>
> ```<br>
><br>
> the code is<br>
><br>
> ```<br>
>     N = length([node()|nodes()]),<br>
> ```<br>
><br>
<br>
Internally, the compiler does a series rewrites. First we have:<br>
<br>
V1 = node(),<br>
V2 = nodes(),<br>
N = length([V1|V2])<br>
<br>
Then the compiler rewrites the code like so:<br>
<br>
V1 = node(),<br>
V2 = nodes(),<br>
N = length(V2) + 1<br>
<br>
since the length of the list does not depend on the value value of V1.<br>
<br>
It then notices that V1 is no longer used, issues a warning and<br>
rewrites the code like so:<br>
<br>
V2 = nodes(),<br>
N = length(V2) + 1<br>
<br>
/Björn<br>
<br>
--<br>
Björn Gustavsson, Erlang/OTP, Ericsson AB<br>
</blockquote></div>