Merci beaucoup pour votre réponse. En effet je ne suis pas habitué à manipuler les portées dynamiques. Je viens de comprendre que, lorsque je rentre les lignes
patate(x,y):=ev(args(__)[2],eval)$ patate(f(x),x); Maxima pose patate(x=f(x),y=x) alors effectivement je comprends pourquoi il renvoie f(f(x)), avec l'effet de l'option eval qui demande deux évaluations successives... Cela m'oblige à nommer les variables de mes fonctions avec des noms compliqués, pour être certain que je ne les rencontrerai pas plus loin dans le programme, mais cela nuit à la lisibilité du code. N'y a-t-il pas une astuce qui permet de contourner ce problème ? Cordialement, Samuel Amo 2010/6/1 Stavros Macrakis <[email protected]> > A la difference de la plupart des langages modernes, Maxima utilise les > portées dynamiques, non pas lexicales. > > -s > > 2010/6/1 Samuel Amo <[email protected]> > >> Bonjour, >> >> je voudrais savoir s'il est normal que lorsque je tape >> >> patate(x,y):=ev(args(__)[2],eval)$ >> patate(f(x),x); >> >> cela renvoie f(f(x)) ?? >> >> Je m'attendrais (et j'attendais !) que cela me renvoie x, ou son >> évaluation. >> (Mais en l'occurence x ne contenait aucune valeur ni fonction.) >> >> Par contre le probleme semble disparaitre si je tape >> >> patate(u,y):=ev(args(__)[2],eval)$ >> patate(f(x),x); >> >> (cela renvoie bien x) >> >> N'est-ce pas révélateur d'un bug de localité de la variable ?? >> Il est plus probable qu'il y a quelque chose que je n'ai pas compris dans >> le système maxima >> (je m'y suis mis il y a seulement quelques mois). >> Quelqu'un pourrait-il m'éclairer ? >> >> Cordialement, >> >> Samuel Amo >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> Maxima-lang-fr mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/maxima-lang-fr >> >> >
------------------------------------------------------------------------------
_______________________________________________ Maxima-lang-fr mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/maxima-lang-fr
