Je ne vois toujours pas en quoi ils n'ont pas de type au sens IT du terme.
Il n'existe pas d'opération typeof qui retourne le type de l'objet, car il existe une infinité de collection distincte qui contiennent cet objet.
Un type c'est un ensemble de valeurs (comme N, Q ou R)
Ce qui n'est pas le cas dans la plupart des langages de programmation, en C, en C++, en Python, en Java, etc... le type est une propriété intrinsèque de la-dite valeur.
ici deux est considéré comme de type Event.t et non comme int
Sauf qu'en Letlang, deux est toujours un int et un number.
mais on peut aussi le caster vers un int
En Letlang il n'y a pas besoin de caster, l'opération + attend un number, elle reçoit un number, car deux est un number.
C'est tout l'argument de ce système de type : c'est stupide de devoir caster quand la définition même de l'opération accepte cette valeur.
Dans ton exemple, OCaml croit que l'on ne peut pas additionner des nombres pairs, ce qui est complètement faux.
[^] # Re: théorie des ensembles pas naives
Posté par David Delassus (site web personnel) . En réponse au journal [Letlang] Et si on rédigeait la spec ?. Évalué à 2.
Il n'existe pas d'opération
typeofqui retourne le type de l'objet, car il existe une infinité de collection distincte qui contiennent cet objet.Ce qui n'est pas le cas dans la plupart des langages de programmation, en C, en C++, en Python, en Java, etc... le type est une propriété intrinsèque de la-dite valeur.
Sauf qu'en Letlang,
deuxest toujours unintet unnumber.En Letlang il n'y a pas besoin de caster, l'opération
+attend un number, elle reçoit un number, cardeuxest un number.C'est tout l'argument de ce système de type : c'est stupide de devoir caster quand la définition même de l'opération accepte cette valeur.
Dans ton exemple, OCaml croit que l'on ne peut pas additionner des nombres pairs, ce qui est complètement faux.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg