salut tout le monde ,
c'est quoi la différences entre les scripts et les fonctions ???
merci
-----
salut tout le monde ,
c'est quoi la différences entre les scripts et les fonctions ???
merci
Dernière modification par JPL ; 05/01/2016 à 18h32.
La même qu'entre une chaussette et une casserole: les 2 ne se comparent pas.
Quel est le contexte de cette question?
Sous matlab, c'est presque la même chose. La différence est que les variables utilisées dans une fonction restent dans cette fonction (on parle aussi de mémoire privée versus publique et de variable locale versus globale), sauf pour celles qui sont déclarées spécifiquement à la première ligne: function [variables en sorties]=mafonction(variables en entrées).
Cela donne un comportement différent. Exemple avec:
monscript.m
a=a+1; disp(a)
mafonction.m
function [a]=mafonction(a)
a=a+1; disp(a)
Pour voir les différences, tapes dans le command windows les trois instructions suivantes:
>>a=0; monscript; monscript; monscript;
>>a=0; mafonction(a); mafonction(a); mafonction(a);
>>a=0; [a]=mafonction(a); [a]=mafonction(a); [a]=mafonction(a);
dans le logiciel R les deux existent et on peut souvent faire les mêmes choses avec l'un ou l'autre (par exemple une figure compliquée) mais il y a des différences:
- une fonction ne renvoie qu'un unique objet, et tous les objets intermédiaires créés par la fonction sont perdus quand on sort de la fonction. Donc si on veut garder plusieurs données de types différents, il faut que la fonction renvoie une liste et ensuite il faut accéder aux items de la liste, c'est un peu lourd. Cela dit, c'est le comportement des fonctions évoluées de R, comme celles qui ajustent des modèles linéaires par exemple.
A l'inverse, tous les objets créés par un script perdurent dans l'environnement de la session.
- on ne peut pas fournir d'arguments à un script. Si on a écrit un script qui dessine une figure et qui utilise un tableau de données (data frame) x, on ne peut pas le réutiliser pour dessiner la même figure mais avec le tableau y, sauf à renommer y en x. Bien sûr on n'a pas ce problème avec les fonctions.
c'est comme dans Matlab du reste (d'ailleurs R et Matlab se ressemblent, sauf que R est mieux et moins cher)
Si, moi! Que lui reprochez-vous à part qu'il est plus lent pour les gros tableaux, et que les figures sont plus ou moins utilisables / jolies / rapides suivant la bibliothèque graphique utilisée... Mais pour un coût nulle (avec TOUTES les toolbox !) je ne fait pas trop la fine bouche.bon d'accord personne n'utilise Octave pour vrai
De nombreuses choses!!
-un peu plus lent
-les figures sont plus ou moins utilisables/jolies/rapides
...mais la première raison pour dire "bon d'accord personne n'utilise Octave pour vrai", de loin et avant tout autre, c'est que c'est idéal pour entretenir un flamewar
PS: pour vrai, toutes les toolbox? Si c'est vrai je vais probablement switcher
C'est une excellente raison !...mais la première raison pour dire "bon d'accord personne n'utilise Octave pour vrai", de loin et avant tout autre, c'est que c'est idéal pour entretenir un flamewar
Toutes je ne sais pas... une liste des toolbox octave officielles iciPS: pour vrai, toutes les toolbox? Si c'est vrai je vais probablement switcher
Celles que j'utilise principalement (de mémoire signal, statistics, symbolic) sont à 99% compatibles avec leur version MATLAB.
Jiav n'est pas tombé dans le piège (un peu gros) de ma provoc' donc je ne vais pas poursuivre...
mais pour répondre à l'interrogation de mila17, selon moi on choisit d'écrire une fonction quand on va répéter le même traitement sur des données différentes et un script quand on ne va faire le traitement qu'une fois ou un petit nombre de fois.
Bonjour,
Je dirais comme Jack, que ce n'est pas comparable. Un script peut désigner:
- un fichier, le fichier utilisé pour stocker le source d'un programme écrit dans un langage de script,
- et donc "script" peut aussi désigner le dit langage.
Javascript, php, Python sont des langages de script.
Alors qu'une fonction est un certain type de routine : qui renvoie un résultat. On dispose des fonctions aussi bien dans des langages compilés que dans des scripts.
Un script peut contenir autre chose que des fonctions.
A plus.