ENSEIRB Première année 2002/2003

Programmation Fonctionnelle : feuille 6

Programmation par les données

Dérivation symbolique

Rappels:

\begin{aligned}\frac{dc}{dx} & = 0, \\ \frac{dx}{dx} & = 1, \\ \frac{d(u+v)}{dx} & = \frac{du}{dx} + \frac{dv}{dx}, \\ \frac{d(uv)}{dx} & = u\frac{dv}{dx} + v \frac{du}{dx}. \end{aligned}

Exercice 6.1

1. Implémenter une fonction derivee-simple par une traduction directe des quatre règles ci-dessus, i.e. par un simple aiguillage avec quatre cas distincts.

  Exemple d’utilisation: (derivee-simple 'x '(+ x 3)) donnera (+ 1 0).

2. Discuter des avantages et des inconvénients de cette version.

Exercice 6.2

1. Réécrire derivee-simple en séparant les opérateurs de dérivation proprement dits de la fonction qui les applique.

2. Ajouter la dérivation de l’exponentielle, i.e. \frac{d(expu)}{dx} = \frac{du}{dx}(expu)

3. Modifier la dérivation de l’addition pour qu’elle devienne n-aire.

4. Rendre possible les dérivées n-ièmes.

Exercice 6.3

1. Étendre votre programme afin qu’il simplifie les expressions:

• en appliquant les expressions numériques;

• en utilisant les éléments neutres. Indice: associer aux opérateurs de dérivation leur fonction et leurs possibilités de simplifications, comme par exemple < exp > +0 =< exp >.

2. Étendre votre programme afin que tous les opérateurs de base puissent être n-aires (attention aux problèmes d’associativité).