Wolfram Computation Meets Knowledge

Wolfram Language:
INTRODUCTION RAPIDE POUR PROGRAMMEURS

Affichez des notes supplémentaires pour:
Toutes les sections 
  • À propos de Wolfram Language
  • Affichez des notes supplémentaires pour:...
  • Notes aux programmeurs Java
  • Notes aux programmeurs Python
  • Masquez les notes supplémentaires
Démarrez

Définitions de fonction Version vidéo

Dans Wolfram Language, les définitions de fonction sont simplement des affectations qui fournissent des règles de transformation pour les motifs.

Notes aux programmeurs Java :

Contrairement aux méthodes du langage Java orienté objet, les fonctions de Wolfram Language ne sont pas limitées à une hiérarchie de classes.

Définissez une fonction de deux arguments nommés x et y :

In[1]:=1
f[x_, y_] := x + y

Notes aux programmeurs Java :

Dans les définitions de base de la fonction de Wolfram Language, les noms des paramètres sont suivis par _ ("blank"). Contrairement aux méthodes Java, les fonctions de Wolfram Language acceptent tous types de données par défaut.

Notes aux programmeurs Python :

Dans les définitions de base des fonctions de Wolfram Language, les noms des paramètres sont suivis par _ ("blank"), ce qui permet aux paramètres de correspondre à des motifs symboliques arbitraires. Cela permet des définitions de fonctions puissantes et flexibles qui ne sont pas possibles par défaut en Python. Vous pouvez définir des fonctions basées sur Wolfram Language à utiliser en Python à l'aide de session.function à partir de la Wolfram Client Library for Python (bibliothèque clients de Wolfram pour Python).


Utilisez la définition :

In[2]:=2
f[4, a]
Out[2]=2

Supprimez la définition :

In[3]:=3
Clear[f]

Les fonctions peuvent être définies en spécifiant leurs valeurs dans une séquence de cas :

In[1]:=1
f[1] = 2
Out[1]=1

In[2]:=2
f[2] = 3
Out[2]=2

Tout cas indéfini est laissé non transformé :

In[3]:=3
{f[1], f[2], f[3], f[4]}
Out[3]=3

Vous pouvez utiliser /; pour restreindre une définition à appliquer, seulement lorsqu'une condition particulière se présente :

In[4]:=4
f[x_, y_] := x - y /; x > y

Notes aux programmeurs Java :

L'utilisation de /; en Wolfram Language est comme une condition if (si) raccourcie.

Notes aux programmeurs Python :

L'utilisation de /; en Wolfram Language est comme une condition if (si) qui peut être appliquée à une fonction, permettant à une fonction de choisir de manière flexible une définition basée sur une condition.


Vous pouvez définir des transformations pour n'importe quel côté à gauche, ce qui représente une méthode pratique pour déstructurer les arguments :

In[1]:=1
f[{x_, y_}, z_] := {x + z, y - z}

In[2]:=2
f[{5, 6}, q]
Out[2]=2

Wolfram Language ne possède pas de types proprement dits. Tout est expression symbolique. La "tête" d'une expression peut être utilisée comme une forme générale de désignateur de type généralisé.

Donnez des définitions différentes de ce que "f" doit faire lorsqu'elle s'applique à un objet "u" ou un objet "v" :

In[1]:=1
f[u[x_]] := x + 1

In[2]:=2
f[v[x_]] := x - 1

Notes aux programmeurs Java :

Ceci est similaire à la surcharge d'une méthode Java pour différents types de données, sauf que les fonctions de Wolfram Language peuvent être surchargées de manière plus générale, en fonction de la structure symbolique de leurs arguments.

Notes aux programmeurs Python :

Une fonction Wolfram Language peut utiliser un filtrage par motif intégré pour modifier son comportement en fonction de la structure symbolique de l'un de ses arguments. Réaliser cela en Python nécessiterait un code personnalisé assez élaboré ou des bibliothèques tierces.

RÉFÉRENCE RAPIDE : Définir variables et fonctions


Laquelle de ces options définit une fonction f qui ajoute deux nombres (par exemple : f[3, 4] == 7)?


Quelle définition ferait {f[1], f[2], f[3], f[4]} s'évaluer à {f[1], 5, 6, f[4]}?


Si la fonction f est définie comme f[x_, y_] := x + y, alors, laquelle de ces options est la valeur de f[a, b]?

© 2020 Wolfram. Tous droits réservés.