<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2015-03-18 13:43 GMT+00:00 Carlos Catucci <span dir="ltr"><<a href="mailto:carlos.catucci@gmail.com" target="_blank">carlos.catucci@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Il fatto che Python in caso di AND eviti di eseguire gli altri controlli (non sono certo del comportamento di altri linguaggi, a naso direi che quelli statici si comportino diversamente) e' una cosa di cui essere consci.</blockquote></div><br>Questa cosa si chiama "short-circuited operators" ed e' praticamente presente in quasi tutti i linguaggi di alto livello a partire da algol 68 (non ho dati storici che dicano che sia effettivamente il primo ad averli implementati, ma guardando una timeline sembra uno dei piu' vecchi).</div><div class="gmail_extra"><br></div><div class="gmail_extra">Incidentalmente e' una feature apparentemente astuta che spacca i coglioni in modo impressionante a chi scrive compilatori (e di conseguenza a chi scrive programmi che devono andare forte conscio che chi scrive i compilatori non puo' fare miracoli). </div><div class="gmail_extra"><br></div><div class="gmail_extra">Perche' finche' sei in Python tutto ok, il branch predictor non lo vedi manco a pagare ed e' tutto un mondo spugnoso colorato. Dopo di che quando uno si ritrova a lavorare in C deve considerare che queste espressioni apparentemente innocue potenzialmente ti scassano male il branch predictor, e che spesso e volentieri sarebbe piu' efficiente valutare tutto e tanti saluti. Ovviamente la cosa e' problematica perche' chi scrive i compilatori non puo' prendersi la liberta' di fare questa scelta, poiche' potenzialmente violerebbe lo standard del linguaggio blah blah blah.</div><div class="gmail_extra"><br></div><div class="gmail_extra">In altre parole, datemi entrambe le opzioni. Si, Go non me le da. Sempre sul discorso "e' un linguaggio di sistema".<br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>