Re: Lisibilité - Agrégats

Thomas De Contes via Ada-france <[email protected]> Thu, 6 Jan 2022 06:58:21 +0100
Newsgroups gmane.comp.lang.ada.france
Message-ID <[email protected]>
Le 6 déc. 2021 à 09:07, Pascal Obry a écrit :

> Le dimanche 05 décembre 2021 à 23:49 +0100, Thomas De Contes via Ada-
> france a écrit :

>> Y a-t-il une différence entre :
>>     Proc ((1 => Char));
>>     Proc (Char & "");
>> ?
> 
> Personnellement je préfère même dans ce cas:
> 
>   Proc(String'(1 => Char));

Pourquoi ?
(Je vois pourquoi s'il y a ambiguité sur la procédure à laquelle se brancher, mais c'est rare.)


Le 6 déc. 2021 à 06:34, Jean-Pierre Rosen via Ada-france a écrit :

> Je trouve la première plus naturelle (on exprime un tableau comme un agrégat), alors que la seconde semble plus une astuce

Oui, en fait ce qui ne me va pas c'est que les agrégats positionnels de longueur 1 sont interdits.

À la rigueur, si c'était autorisé à condition de préciser le type tableau :
  Proc(String'(Char));
ça me conviendrais.

Mais je comprend le principe qui fait ton choix, alors tant pis si j'aime pas l'allure, j'en reste aux agrégats nommés. :-)


> (concaténer la chaîne vide, c'est bizarre).


Je pense que j'ai été influencé par ce code là, que j'ai écrit il n'y a pas si longtemps :
   (if Detail = "" then "" else ":" & ASCII.LF)
Et c'était pour mettre à nouveau dans un "if" avec 2 chaînes vides.
(Le plus agacant c'est que le "if" est entouré de "&" qui acceptent les 2 types, mais le "if" demande d'en choisir un !)

Dans le même esprit, est-ce que ça serais judicieux de le remplacer par ça ? Je n'en suis pas convaincu :
   (if Detail = "" then "" else (':', ASCII.LF))


-- 
RAPID maintainer
http://savannah.nongnu.org/projects/rapid/

_______________________________________________
Ada-france mailing list
[email protected]
https://mail.ada-france.org/cgi-bin/mailman/listinfo/ada-france