La première question a se poser est: pourquoi utiliser 'ev' (la
fonction-poubelle de Maxima)? En général, c'est plus simple et plus clair
d'utiliser 'subst'.
Ceci dit, ça n'aide pas si effectivement vous voulez évaluer les valeurs de
fonctions que vous avez définies.
Qu'est-ce que vous voulez faire avec votre fonction? L'exemple de 'patate'
ne montre pas la motivation et le contexte du problème...
-s
2010/6/1 Samuel Amo <[email protected]>
> 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