[gull] Php/MsSQL obsoletes?

Leopoldo Ghielmetti Leopoldo.Ghielmetti at a3.epfl.ch
Wed Sep 28 12:08:48 CEST 2005


On Wed, 2005-09-28 at 11:10, Daniel Cordey wrote:
> On Wednesday 28 September 2005 10:34, Antoine Induni wrote:
> 
> > Effectivement, c'est une définition très vaste et contradictoire.
> > Je pensais à ça...
> > tableau = [1, 2, 3, "a", "b", "c"]
> > Moi ça me surprend un peu. Typiquement si je veux faire une collection
> > d'objets métiers, peut-on forcer le type d'objets que l'on accepte?
> 
> Python "laisse" faire ca, comme tu le dis si bien. Ou plutot devrait-on dire : 
> "permet" de faire ca ! Il s'agit veritablement d'une focntionalite et non 
> d'une faiblesse du langage. Pour obtenir une liste exclusivement composee 
> d'entiers, on peut faire :
> 
> tableau_int = [x for x in tableau if type(x) is int]
> 
> ou pour des chaines de caractere :
> 
> tableau_string = [x for x in tableau if type(x) is str]
> 
> Il existe aussi un module qui permet de traiter des "tableaux" de grande 
> taille en limitant l'utilisation de la memoire et certaines autres 
> focntionalites. Les limitations sont, entre autre, que tous les elements du 
> tableau doivent etre imperativement de meme type et que ces types sont soit 
> entiers, flottants ou complexes (en 32 ou 64 bits !). Voir : module numarray.
> 
> L'exemple que tu site est nettement plus complique a realise en C et 
> necessiterait l'usage d'un typedef et de pointeurs (ou d'une 'union').Or, 'C' 
> EST un langage fortement type :-)

Je ne dirais pas que C est fortement typé, il est typé mais pas
fortement. C permet des conversion tacites entre types, chose qui
affaiblit son typage. Un langage fortement typé se plaint même si on
fait une chose pareille:
int a
long b
float c
a = 5
b = a  <--- Erreur, int <> long
c = a  <--- Erreur, int <> float

Tandis que C laisse passer et considère ça comme:
b = (long)a
c = (float)a

Celle-ci c'est l'une des principales faiblesses du C qui pose des
problèmes de compatibilité et qui d'ailleurs avait fait tomber l'Ariane
5 lors du premier lancement car une routine était faite pour traiter des
short (16 bits) et qui avait été utilisée pour la nouvelle fusée qui
utilisait des int (32 bits) ou quelque chose dans le genre, pendant le
vol il y a eu un dépassement et les calculs ont foiré. Boummm!

> dc

ciao, Leo

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://forum.linux-gull.ch/pipermail/gull/attachments/20050928/31d1f280/attachment.pgp>


More information about the gull mailing list