OVH Cloud OVH Cloud

Appel de procédures par Call

8 réponses
Avatar
Vincent Guichard
Juste pour ma gouverne personnelle...

L'utilisation de Call est-elle conseillée/déconseillée/indifférente?*

Vincent Guichard

*rayer les mentions inutiles

8 réponses

Avatar
le_troll
Salut = conseillé...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Vincent Guichard" a écrit dans le message de
news:cic3p9$jfa$
Juste pour ma gouverne personnelle...

L'utilisation de Call est-elle conseillée/déconseillée/indifférente?*

Vincent Guichard

*rayer les mentions inutiles


Avatar
Vincent Guichard
le_troll a écrit :

Salut = conseillé...




Ok, une nouvelle question alors.
Pourquoi?

Vincent Guichard
Avatar
Jean-Marc
"Vincent Guichard" a écrit dans le message de
news:cicb2g$507$
le_troll a écrit :

> Salut = conseillé...
>

Ok, une nouvelle question alors.
Pourquoi?



Hello,

je conseille aussi. Parce que tu vois tout de suite que tu appelles une
Procédure.
En effet, VB autorise un appel à une fonction sans affectation de la valeur
de retour.

Donc si je vois écrit:

...
toto
...

Je ne peux pas savoir si c'est un appel de procédure ou un appel de fonction
*TRES MAL* écrit.

En revanche,
...
Call toto
...

me renseigne sur l'intention du programmeur: toto est clairement une
procédure.
NB: VB autorise de faire Call toto, même si toto est une fonction. Mais dans
ce cas, c'est le programmeur qu'il faut pendre.

Conclusion: privilégier la lisibilité maximum.

--
Jean-marc
Avatar
Patrice Henrio
Sauf que dans une bonne programmation un appel de fonction sans retour n'est
pas correct.
Pour ma part je n'utilise jamais call et je n'utilise jamais un appel de
fonction sans stocker le résultat dans une variable, même si ce résultat ne
sert pas (sauf bien entendu pour un test if f(X) then)
Plus généralement je ne crée pas de fonctions dont le résultat n'a pas
d'importance (fonctions à effet de bords, indispensables dans les langages
fonctionnels où tout est fonction et composition de fonction).

En programmation impérative ou objet Print(Toto) est une action donc une
sub. On peut éventuellement la considérer comme une fonction retournant un
code d'erreur (comme en C).
En programmation fonctionnelle (comme LISP ou SCHEME) Print(Toto) est une
fonction qui renvoie la valeur de l'évaluation de Toto et qui accessoirement
va écrire cette valeur à l'écran.


"Jean-Marc" a écrit dans le message de
news:4149c1b6$0$4144$
"Vincent Guichard" a écrit dans le message de
news:cicb2g$507$
> le_troll a écrit :
>
> > Salut = conseillé...
> >
>
> Ok, une nouvelle question alors.
> Pourquoi?

Hello,

je conseille aussi. Parce que tu vois tout de suite que tu appelles une
Procédure.
En effet, VB autorise un appel à une fonction sans affectation de la


valeur
de retour.

Donc si je vois écrit:

...
toto
...

Je ne peux pas savoir si c'est un appel de procédure ou un appel de


fonction
*TRES MAL* écrit.

En revanche,
...
Call toto
...

me renseigne sur l'intention du programmeur: toto est clairement une
procédure.
NB: VB autorise de faire Call toto, même si toto est une fonction. Mais


dans
ce cas, c'est le programmeur qu'il faut pendre.

Conclusion: privilégier la lisibilité maximum.

--
Jean-marc




Avatar
Jean-Marc
"Patrice Henrio" a écrit dans le
message de news:
Sauf que dans une bonne programmation un appel de fonction sans retour


n'est
pas correct.



Oui, et c'est pour ça que j'ai écrit:

> Je ne peux pas savoir si c'est un appel de procédure ou un appel de
fonction
> *TRES MAL* écrit.



en surlignant **TRES MAL** écrit.

Bien sur qu'on ne doit jamais faire ça. Soit on écrit une fonction, et alors
on **DOIT** utiliser la valeur de retour, soir on écrit une procédure.

Je soulignais le fait que faire apparaître le Call est une indication pour
une tierce personne qui va lire le code.
Ecire du code propre, c'est écrire un code lisible par d'autres que soi.
C'est aussi ne pas supposer que les relecteurs sont tous des experts du
langage dans lequel on code. Je trouve que faire apparaître un CALL dénote
de façon quasi universelle un appel explicite à une Sub, donc à quelque
chose qui n'a pas de valeur de retour.

Mais évidemment, il est inutile de polémiquer sur le sujet. C'est aussi une
affire de style, d'expérience, de conventions internes ou externes, etc.

Une chose est sure: Faire un appel de fonction sans utiliser la valeur de
retour est mal, et dénote soit une faute de logique, soit ue faute de
conception.

--
Jean-marc
Avatar
le_troll
Je te suis, jamais sans "CALL"... Sinon on ne sait pas ce que c'est,
une erreur, une variable mal nourrie, une fonction, une procédure, un
mot-clef...

Sinon, pour les fonctions, c'est pas tellement basic ça, avec la mémoire
actuelle et sauf cas rarissime, la fonction ne s'utilise guère, sauf par
ceux qui ont été formés au C, mais bien moins par ceux qui viennent du
Basic...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Jean-Marc" a écrit dans le message de
news:4149e880$0$870$
"Patrice Henrio" a écrit dans le
message de news:
> Sauf que dans une bonne programmation un appel de fonction sans retour
n'est
> pas correct.

Oui, et c'est pour ça que j'ai écrit:

> > Je ne peux pas savoir si c'est un appel de procédure ou un appel de
> fonction
> > *TRES MAL* écrit.

en surlignant **TRES MAL** écrit.

Bien sur qu'on ne doit jamais faire ça. Soit on écrit une fonction, et


alors
on **DOIT** utiliser la valeur de retour, soir on écrit une procédure.

Je soulignais le fait que faire apparaître le Call est une indication pour
une tierce personne qui va lire le code.
Ecire du code propre, c'est écrire un code lisible par d'autres que soi.
C'est aussi ne pas supposer que les relecteurs sont tous des experts du
langage dans lequel on code. Je trouve que faire apparaître un CALL dénote
de façon quasi universelle un appel explicite à une Sub, donc à quelque
chose qui n'a pas de valeur de retour.

Mais évidemment, il est inutile de polémiquer sur le sujet. C'est aussi


une
affire de style, d'expérience, de conventions internes ou externes, etc.

Une chose est sure: Faire un appel de fonction sans utiliser la valeur de
retour est mal, et dénote soit une faute de logique, soit ue faute de
conception.

--
Jean-marc





Avatar
Patrice Henrio
Pour ma part et par choix personnel lié à mes habitudes de programmation,
chaque fois que possible, je fabrique une fonction.
Mais, comme l'ont dit plusieurs intervenants, c'est une question de choix.
C'est avec les fonctions et les compositions de fonctions que je me sens le
plus à l'aise. D'autres au contraire ont plus de mal sur ce sujet mais
dominent mieux d'autres aspects de la programmation.
Par exemple j'ai beaucoup de mal à rentrer dans la programmation purement
objet en VB.


"le_troll" a écrit dans le message de
news:%
Je te suis, jamais sans "CALL"... Sinon on ne sait pas ce que


c'est,
une erreur, une variable mal nourrie, une fonction, une procédure, un
mot-clef...

Sinon, pour les fonctions, c'est pas tellement basic ça, avec la


mémoire
actuelle et sauf cas rarissime, la fonction ne s'utilise guère, sauf par
ceux qui ont été formés au C, mais bien moins par ceux qui viennent du
Basic...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Jean-Marc" a écrit dans le message de
news:4149e880$0$870$
> "Patrice Henrio" a écrit dans le
> message de news:
> > Sauf que dans une bonne programmation un appel de fonction sans retour
> n'est
> > pas correct.
>
> Oui, et c'est pour ça que j'ai écrit:
>
> > > Je ne peux pas savoir si c'est un appel de procédure ou un appel de
> > fonction
> > > *TRES MAL* écrit.
>
> en surlignant **TRES MAL** écrit.
>
> Bien sur qu'on ne doit jamais faire ça. Soit on écrit une fonction, et
alors
> on **DOIT** utiliser la valeur de retour, soir on écrit une procédure.
>
> Je soulignais le fait que faire apparaître le Call est une indication


pour
> une tierce personne qui va lire le code.
> Ecire du code propre, c'est écrire un code lisible par d'autres que soi.
> C'est aussi ne pas supposer que les relecteurs sont tous des experts du
> langage dans lequel on code. Je trouve que faire apparaître un CALL


dénote
> de façon quasi universelle un appel explicite à une Sub, donc à quelque
> chose qui n'a pas de valeur de retour.
>
> Mais évidemment, il est inutile de polémiquer sur le sujet. C'est aussi
une
> affire de style, d'expérience, de conventions internes ou externes, etc.
>
> Une chose est sure: Faire un appel de fonction sans utiliser la valeur


de
> retour est mal, et dénote soit une faute de logique, soit ue faute de
> conception.
>
> --
> Jean-marc
>
>
>




Avatar
le_troll
Oui, tu as raison, ça dépend souvent de la façon dont on a appris à
programmer à l'origine, tous ceux qui sont passé par Borland, et ceux qui
ont eu un cursus mathématique, font de la fonction à tout va, les autres,
ceux du basic (cpm, bal, basic, qbasic), font davantage de la procédure et
de la variable globale ou locale... Et les deux écoles mettent à leur sauce
vb... En plus vb, pour ramasser un maximum de client a été obligé d'accepter
la forme du C, aussi pour se mettre en accord avec les autres concepteurs...

Pour ma part, j'ai fait 2, 3 ans de C++, mais j'écrivais comme en basic (je
venais du cpm)... En C ils passaient leur temps à utiliser les pointeurs,
pointeurs qui ne servent en fait qu'avec les fichier ou l'adressage direct,
dont rarement, on peut s'en passer à 99%...

In fine, oui les objets, la programmation objet n'est pas évidente, surtout
dans la mesure où il faut connaître l'objet auquel tu t'adresse, où il faut
connaître ses propriétés, sans omettre la quasi inexistance de doc, ou tout
du moins en français...

Il n'y a pas une bonne et une mauvaise façon, les deux arrivent avec la même
quantité de code au même résultat, tout dépend de l'origine de
l'apprentissage... On peut épiloguer longtemps, l'origine c'était des
matheux qui devaient faire des économies, et de temps et d'espace, alors les
fonctions et pointeurs s'y prêtaient bien, désormais ces astreintes ayant
disparues, la forme elle même du C est conservée car c'est elle qui est
enseignée, mais elle n'a plus sont utilité de base... En pensant à ça,
d'ailleurs je souris, à l'origine ceux qui faisait du basic se voyaient
reproché par ceux du C un abus de goto, mais si tu regardes désormais les
programme, il y a un abus notoire de fonction et de procédure qui a remplacé
l'abus de goto, lol :o)

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Patrice Henrio" a écrit dans le
message de news:
Pour ma part et par choix personnel lié à mes habitudes de programmation,
chaque fois que possible, je fabrique une fonction.
Mais, comme l'ont dit plusieurs intervenants, c'est une question de choix.
C'est avec les fonctions et les compositions de fonctions que je me sens


le
plus à l'aise. D'autres au contraire ont plus de mal sur ce sujet mais
dominent mieux d'autres aspects de la programmation.
Par exemple j'ai beaucoup de mal à rentrer dans la programmation purement
objet en VB.


"le_troll" a écrit dans le message de
news:%
> Je te suis, jamais sans "CALL"... Sinon on ne sait pas ce que
c'est,
> une erreur, une variable mal nourrie, une fonction, une procédure, un
> mot-clef...
>
> Sinon, pour les fonctions, c'est pas tellement basic ça, avec la
mémoire
> actuelle et sauf cas rarissime, la fonction ne s'utilise guère, sauf par
> ceux qui ont été formés au C, mais bien moins par ceux qui viennent du
> Basic...
>
> --
> Merci, @+, bye, Joe
> troll75 AROBASE iFrance POINT com
> ------------------------------------------
> Le_Troll, éleveur de Trolls depuis César, qui disait:
> Avec une hache, celui qui tient le manche a toujours raison !
>
>
> "Jean-Marc" a écrit dans le message de
> news:4149e880$0$870$
> > "Patrice Henrio" a écrit dans le
> > message de news:
> > > Sauf que dans une bonne programmation un appel de fonction sans


retour
> > n'est
> > > pas correct.
> >
> > Oui, et c'est pour ça que j'ai écrit:
> >
> > > > Je ne peux pas savoir si c'est un appel de procédure ou un appel


de
> > > fonction
> > > > *TRES MAL* écrit.
> >
> > en surlignant **TRES MAL** écrit.
> >
> > Bien sur qu'on ne doit jamais faire ça. Soit on écrit une fonction, et
> alors
> > on **DOIT** utiliser la valeur de retour, soir on écrit une procédure.
> >
> > Je soulignais le fait que faire apparaître le Call est une indication
pour
> > une tierce personne qui va lire le code.
> > Ecire du code propre, c'est écrire un code lisible par d'autres que


soi.
> > C'est aussi ne pas supposer que les relecteurs sont tous des experts


du
> > langage dans lequel on code. Je trouve que faire apparaître un CALL
dénote
> > de façon quasi universelle un appel explicite à une Sub, donc à


quelque
> > chose qui n'a pas de valeur de retour.
> >
> > Mais évidemment, il est inutile de polémiquer sur le sujet. C'est


aussi
> une
> > affire de style, d'expérience, de conventions internes ou externes,


etc.
> >
> > Une chose est sure: Faire un appel de fonction sans utiliser la valeur
de
> > retour est mal, et dénote soit une faute de logique, soit ue faute de
> > conception.
> >
> > --
> > Jean-marc
> >
> >
> >
>
>