Mettre une liste chainée en global, c possible?
Publié : ven. 17/déc./2004 23:30
That is the question...
Forums PureBasic - Français
http://forums.purebasic.com/french/
je n'ai jamais dit le contraire puisque je dit " (qu'elle y soient , c'est tres bien mais pas indispensable) "Denis a écrit :Pas d'accord avec toi Dobro
Les 2 types sont interessants et on leur utilité.
je n'ai jamais dit que la recursivité etait un language !!La récursivité en est une et certains problèmes sont difficilement solvables sans récursivité qui soit dit en passant n'est pas du C ou je ne sais quoi mais une méthode de programmation.
soit ! mais elle ne sont pas obligatoire pour faire de la recurcivité !La plupart des variables en récursivité doivent rester locales justement du au principe même de cette méthode.
Je suis d'accord !Je crois que tous les types de variables devraient pouvoir être déclarés en local ou en global. Au choix du programmeur.
ha c'est quoi ça les effets de bords ??En règle générale, il vaut mieux limiter les variables globales qui sont sources d'erreurs (effet de bord) difficiles parfois à trouver.
tout a fait d'accord avec toi !!Sinon rien n'empêche un Language de disposer de commandes avancées et là encore chacun programme avec les commandes qu'il veut.
Chacun doit rester libre de faire ce qu'il veut, libre ou non d'utiliser le jeu de commandes dans la globalité.
Les pointeurs Purebasic sont souvent inutiles dans bien des cas (on peut mettre une variable normale à la place) et source d'embrouilles et d'erreurs. Ils sont indispensables pour passer des paramètres comme des variables basés sur une structure, Fred l'a décidé comme il voulait.
voir aussiEffets de bords
Les effets de bords (side effects) ne sont pas une spécificité de la programmation fonctionnelle - ce serait même plutôt l'inverse : on en trouve avant tout dans la programmation impérative où ils sont d'ailleurs sources de nombreux bogues...
Un effet de bord correspond à un résultat inattendu d'une fonction, et par extension à toute modification au sein de l'environnement (modification de la valeur d'une variable, par exemple). Pour bien comprendre l'effet de bord, replaçons-les dans leur contexte favori : la programmation impérative.
Dans ce cas de figure, la portée d'une variable est le plus souvent limitée à la procédure où elle est définie, le compilateur prenant en charge l'allocation/désallocation de mémoire. Cependant il peut arriver qu'une variable ou une zone mémoire dispose d'une portée qui dépasse la procédure qui la contient, ceci afin d'être accessible à partir d'autres procédures. Certaines procédures peuvent ainsi modifier une variable ou une zone mémoire dans le seul but de les maintenir dans un état donné, fixé par le développeur.
Cette capacité d'une fonction de modifier l'état d'une valeur (variable globale ou statique, argument d'une autre fonction, affichage ou écriture des données) autre que celle qu'elle renvoie définit l'effet de bord.
Ce mécanisme crée une sorte d'interdépendance entre les fonctions, rendant souvent plus complexe la compréhension d'un programme... D'autant que la modification d'une fonction peut dès lors avoir des conséquences inattendues sur le résultat d'autres fonctions "liées".
Mais la programmation impérative (comme les programmeurs OO le reconnaîtront) se base quasi uniquement sur les effets de bord. La programmation fonctionnelle pure les refuse pour sa part. Toutes les fonctions peuvent ainsi facilement être testées de manière unitaire, accélérant le déboguage et facilitant l'optimisation.
ouf !! je pensais que cela etait un bug system qui faisai deborder le contenu de certaine variable dans les autres !!Cette capacité d'une fonction de modifier l'état d'une valeur (variable globale ou statique, argument d'une autre fonction, affichage ou écriture des données) autre que celle qu'elle renvoie définit l'effet de bord.
Je pense que les variables locales ont toujours existée