[Python] Filtrare un carattere.

enrico franchi enrico.franchi a gmail.com
Sab 21 Mar 2015 20:47:30 CET


2015-03-18 13:43 GMT+00:00 Carlos Catucci <carlos.catucci a 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-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150321/5fd2fc28/attachment.html>


Maggiori informazioni sulla lista Python