2014-12-05 16:23 GMT+00:00 Walter Valenti <waltervale...@yahoo.it>: > Ai tempi dell'università, il "goto" ci era stato caldamente consigliato > di non usarlo. >
Classico effetto "mi hanno detto che non va bene". In particolare tutto nacque dal paper di Dijkstra. Per inciso, Dijkstra stesso si e' espresso in modo piu' moderato sullo stesso punto in seguito. Il fatto e' che quel paper viene sempre citato, non e' stato in generale letto o capito da chi lo cita. E ovviamente tutte le condizioni al contorno non vengono *minimamente* tenute in considerazione. Come appunto dicevo, nella pratica si usa. Le alternative sono peggiori. Specie perche' il goto di C ha relativamente poco in comune Il punto e' che in C non hai le eccezioni. Il che vuole dire che il classico pattern res1_acq res2_acq res3_acq do_something do_something do_something clean_res1 clean_res2 clean_res3 diventa piuttosto tricky quando ci devi appunto ficcare in mezzo il fatto che ogni operazione dopo res1_acq deve pulire res1, ogni operazione dopo res2_acq deve pulire res2 (e per quanto detto prima, pure res1) e cosi' via. La struttura usando goto risulta *parecchio* semplice e leggibile (e si puo' anche sfruttare l'effetto a cascata). Appunto, come diceva Roberto, e' una pratica talmente diffusa e ovvia che e' veramente strambo parlarne. Basta leggere un po' di codice in giro (e si parla di progetti piuttosto di peso, non roba scritta da principianti). > Della serie: "esiste, ma guai a voi se lo usate". Tenendo conto che la maggior parte delle persone che fanno il primo corso di programmazione sono in difficolta' pure con il while, capisco la posizione. E anche tenendo conto che i programmi che si fanno in questi contesti sono sufficientemente semplici, specialmente allocano molte poche risorse... probabilmente files e memoria e fine della fiera. Dopo di che, sfortunatamente, questo dogma resta, evidentemente senza capirne il fondamento. Peccato che di tutte le cose piu' o meno utili insegnate in universita' questo sia indelebile... mentre tanta altra roba viene persa. Credo che il motivo sia che non si e' dovuto lavorare piu' di tanto in C... puo' essere? -- . ..: -enrico-
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python