> Pokud ta funkce nemá vedlejší efekt (což jsem zmínil) > pak ji ani nemusím volat, abych mohl celou konstrukci > vypustit. A můžu to udělat právě optimalizací v AST, > tedy jakoby na úrovni přeparsovaného zdrojového > textu. Problém je, jak zjistit, že ta funkce nemá > vedlejší efekt. > > Iterátor není funkce. Je to objekt. A jeho metoda > next() typicky nemá vedlejší efekt (pokud si ho > tam někdo sám nenaprogramuje).
problém je to _typicky_. na tohle optimalizátor spoléhat nemůže > Konstrukce cyklu je navržena především pro > programátory, nikoliv pro jakýkoliv optimalizátor. Jakýkoli programovací jazyk je už z principu navržen pro programátory. > Z tohoto pohledu se ptám ještě jednou. Co to je > "klasický cyklus"? Je jeho speciálnost pro programátora > natolik důležitá, aby opodstatnila současnou > existenci konstrukcí for/foreach? A v jakých > jazycích se takový "klasický for" vlastně > používá? Já tedy nevím, ale cyklus for, ne foreach se používá tak často, že na to stačí pouhá statistika. _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python