On Feb 5, 2010, at 8:24 PM, Alessandro Dentella wrote: > in attesa che Enrico mantenga la > promessa e mostri gli "assurdi completi" che quanto scritto sopra > comporterebbe.
Essenzialmente ha spiegato tutto già Daniele. Gli assurdi saltano fuori dalla posizione: In an ideal world, bool might be better implemented as a separate integer type that knows how to perform mixed-mode arithmetic. Ovvero noi *vogliamo* mixed mode arithmetic. Tolto questo assunto, è ovviamente completamente possibile gestire in modo consistente le operazioni fra interi e booleani lanciando eccezioni. Il punto è che IMHO l'aritmetica che coinvolge i booleani è estremamente comoda. Evidentemente anche secondo Guido. Quindi partiamo dal volere che un booleano possa stare in ogni posto dove possa stare un intero. Consideriamo anche ragionevole che: 1) a + (-a) == a - a == 0 2) m - n < 0 <==> m < n Ma soprattutto chiediamoci cosa *dovrebbe* fare False + True o una cosa come True * 5 è completamente chiaro che il tutto è relativamente arbitrario (in particolare True == 5 invece che True == 1 non darebbe problemi). Ma prendere False != da 0 ci porrebbe nell'imbarazzante condizione di avere if 0: print "foo" che stampa "foo". Comunque davvero, la cosa più naturale è vedere True e False come numeri a 1-bit. Non ci formalizziamo perchè 0 == 0L, ma ci da fastidio False. Se vogliamo fare aritmetica mista (che è l'assunto), ci troviamo a dovere dare convenzionalmente un valore a True e False. E ovviamente tutte le scelte possibili sarebbero peggiori e meno intuitive di questa. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python