2015-03-18 13:43 GMT+00:00 Carlos Catucci <carlos.catu...@gmail.com>:
> 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. 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). 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). 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. In altre parole, datemi entrambe le opzioni. Si, Go non me le da. Sempre sul discorso "e' un linguaggio di sistema". -- . ..: -enrico-
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python