Caml-Light, sur Amiga aussi
3 sujets de 1 à 3 (sur un total de 3)
-
Bon d’accord c’est quand même un peu pour les matheux, mais c’est beaucoup trop puissant pour passer à côté.
Caml-Light pour Amiga68k, en français:
http://pauillac.inria.fr/cdrom/prog/others/caml/fra.htm
De la documentation pour démarrer, en anglais:
http://caml.inria.fr/man-caml/index.html
ftp://ftp.inria.fr/INRIA/caml-light/cl74refman.txt
ftp://ftp.inria.fr/INRIA/caml-light/cl74tutorial.txt
Encore de la documentation, en français:
http://caml.inria.fr/books-fra.html
http://caml.inria.fr/polycopies/cheno/index-fra.html
http://caml.inria.fr/polycopies/quercia/index-fra.html
http://caml.inria.fr/polycopies/lemaire/index-fra.html
Pour ceux qui douteraient encore voici un programme qui dérive une fonction quelconque:
type Fun = X
| R of float
| Sin of Fun
| Cos of Fun
| Tan of Fun
| Log of Fun
| Exp of Fun
| Power of Fun * float
| Add of Fun * Fun
| Mul of Fun * Fun
;;
let rec Deriv f = (
match f with
| X -> R(1.)
| R(k) -> R(0.)
| Add(u,R(k)) -> Deriv(u)
| Add(u,v) -> Add(Deriv(u),Deriv(v))
| Mul(R(k),X) -> R(k)
| Mul(R(k),u) -> Mul2(R(k),Deriv(u))
| Mul(u,v) -> Add(Mul2(Deriv(u),v),Mul2(u,Deriv(v)))
| Sin(u) -> Mul2(Deriv(u),Cos(u))
| Cos(u) -> Mul2(R(-1.),Mul2(Deriv(u),Sin(u)))
| Tan(u) -> Mul2(Deriv(u),Power(Cos(u),-2.))
| Log(u) -> Mul2(Deriv(u),Power(u,-1.))
| Exp(u) -> Mul2(Deriv(u),Exp(u))
| Power(u,2.) -> Mul2(R(2.),Mul2(Deriv(u),u))
| Power(u,b) -> Mul2(R(b),Mul2(Deriv(u),Power(u,b-.1.)))
)
where rec Mul1 p = match p with
| R(1.),u -> u
| u,v -> Mul(u,v)
and Mul2 p = match p with
| R(a),Mul(R(b),u) -> Mul1(R(a*.b),u)
| Mul(R(a),u),R(b) -> Mul1(R(a*.b),u)
| Mul(R(a),u),Mul(R(b),v) -> Mul1(R(a*.b),Mul(u,v))
| u,Mul(R(k),v) -> Mul(R(k),Mul(u,v))
| Mul(R(k),u),v -> Mul(R(k),Mul(u,v))
| u,v -> Mul1(u,v)
;;
Maintenant pour dériver 3cos^2 (x^2-1) il suffit de taper à l’invite:
Deriv(Mul(R(3.),Power(Cos(Add(Power(X,2.),R(-1.))),2.)));;
Et on obtient une expression dont chacun pourra vérifier qu’elle est bien -12x.sin(x^2-1).cos(x^2-1)
Pour ce qui est de mettre ces expressions sous une forme plus lisible, et bien je vous le laisse à titre d’exercice (conseil: utilisez le filtrage sur les flux de caractères).
3 sujets de 1 à 3 (sur un total de 3)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Caml-Light, sur Amiga aussi