Le Tue, 26 Feb 2013 23:40:33 +0100,
cjps...@gmail.com
<
cjps...@gmail.com> a écrit:
>
> Sauf que range est un mot réservé du langage.
>
Oui, c’est un « problème » qui revient souvent. En Ada, les noms des
choses et les noms des types, appartiennent au même espace de nom. Une
solution simple est d’avoir une convention pour les noms des types, par
exemple leur donner le suffixe “_Type”. Tu peux par exemple définir “type
Range_Type is record … end record;”.
> Cela serait bien si on pouvait écrire un truc comme :
>
> type Rng is range First..Last of Natural;
>
> R : Rng := (First => i1, Last => i2);
>
> et avoir Mois : String := D (Rng);
>
> Peut-être pour 2017 :-)
Je vois ce que tu veux dire, je me suis déjà dit aussi que ce serait bien,
mais le langage est ce qu’il est, les intervalles n’existent pas en temps
qu’objets indépendant (*), ils n’existent que comme attribut des objets
auxquels ils s’appliquent (les tableaux).
Mais après tout, définir un type enregistrement qui fait la même chose, ne
présente pas de difficulté et n’est source d’aucun blocage pratique, alors
il n’y rien d’impérieux à ajouter quelque chose au langage, s’il propose
déjà ce qu’il faut pour le faire.
(*) Sauf sous une forme fixe, quand tu défini un type intervalle. Mais tu
peux pas changer les bornes, et ici, tu veux quelque chose qui serait une
variable intervalle.
--
“Syntactic sugar causes cancer of the semi-colons.” [1]
“Structured Programming supports the law of the excluded muddle.” [1]
[1]: Epigrams on Programming — Alan J. — P. Yale University