dire, j'ai une fonction Comment puis-je faire ça? J'ai essayé f [a_, b_, c _] = A + B + C code>. Maintenant, j'ai besoin de définir une autre fonction,
g [f_, d _] = f + d code>, où le
f code> ici doit être remplacé par la définition de
f code>, entraînant
A + B + C + D code>. p>
g [f_, d _] = F + d / .f-> Définition [f] code>, cependant, cela n'a pas fonctionné. P>
5 Réponses :
Eh bien, votre configuration nécessite que g soit une fonction d'A, B et C, puisque vous avez explicitement effectué F une fonction de celle-ci. Pourrait plutôt faire: out [2] = A + B + C + D P> Daniel Lichtblau P> P>
La réponse de Daniel est la bonne - elle répond à quoi votre question devrait A demandé!
Mais juste pour le plaisir, voici quelque chose de plus proche de la question de votre question. p> Testez-le: p> In[6]:= ff[a_, b_] := a + b
In[7]:= DownValues[ff]
Out[7]= {HoldPattern[ff[a_,b_,c_]] :> a b c, HoldPattern[ff[a_,b_]] :> a+b}
In[8]:= g[ff, d]
During evaluation of In[8]:= More than one DownValue - using the first!
Out[8]= a b c + d
BTW: dans ce qui précède, "d'abord" ne signifie pas la première définition donnée. Cela signifie le premier dans l'ordre que Mathematica les stocke.
MDR! J'écris un commentaire sur la réponse de Daniel expliquant pourquoi la question n'a aucun sens ... Je suis allé à une courte réunion et quand je suis revenu trouvé votre réponse! Vous pouvez aussi répondre de mauvaises questions! Pure génie! +1
juste une note de côté.
Le tout ait plus de sens lorsque les deux fonctions partagent les mêmes arguments ou que les arguments de la deuxième fonction sont implicites dans la première. p>
Par exemple: p> ou quelque chose comme p>
J'ai aussi je trouve difficile de discerner votre intention, mais c'est mon interprétation: de cette façon, g [f, x] code> retourne une fonction qui transmet ses arguments à
f code>. p> p>
dans le Définiton regarde A, B et C comme la Peut-être que vous vouliez faire quelque chose comme ceci: p> maintenant, le A code>,
b code> ou
c code>. Semblable comme dans
F: = (# 1 + # 2 + # 3) & code>, l'appel à
f code> lui-même (sans arguments) ne donnera pas les résultats souhaités. P >
f code> est associé comme une somme de
A ,
B code> et
C code>, qui sont des symboles globaux et non des arguments de fonction. Ensuite, P>
f + d /. a->2x
Votre question semble être: "Comment définir une fonction qui prend une autre fonction comme l'un de ses arguments?"