Sujet : Re: Le calcul de la racine carré... pour des nuls :)
De : talon (at) *nospam* niobe.lpthe.jussieu.fr (Michel Talon)
Groupes : fr.sci.mathsDate : 10. Nov 2024, 18:42:42
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <6730f092$0$525$426a74cc@news.free.fr>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
User-Agent : Mozilla Thunderbird
Le 10/11/2024 à 15:17, efji a écrit :
Quand je disais qu'il y avait des informaticiens pervers. Franchement, dans quel esprit tordu un truc pareil peut-il germer?
Comme je l'ai expliqué, la notation préfixe est sans ambiguité, on peut écrire
(+ 1 2 3 4) et on va trouver 10, en notation usuelle il faut que le compilateur rame
pour comprendre 1+2+3+4, d'où les machines à état des grammaires LR(1) etc. pour
compiler le C, Ce qui fait que le lisp peut être compilé à la volée en interactif en un temps imperceptible. La notation postfix des calculatrices HP ou de postscript
a les mêmes avantages, sauf qu'il faut que chaque fonction ait un nombre fixe d'arguments, que la machine va chercher sur la pile. Après, lisp a les macros, qui permettent de redéfinir la syntaxe, et il existe en effet des systèmes qui comprennent la notation infix usuelle des opérations. Par exemple le système de Mark Kantrowitz
https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/syntax/infix/infix.clCa utilise le fait qu'on peut tout modifier, y compris le programme "reader" qui lit
le code en premier.
Quand on a chargé infix.cl on peut faire:
;;; Syntax:
;;;
;;; Begin the reader macro with #I( and end it with ). For example,
;;; #I( x^^2 + y^^2 )
;;; is equivalent to the Lisp form
;;; (+ (expt x 2) (expt y 2))
;;; but much easier to read according to some folks.
;;;
;;; If you want to see the expansion, type a quote before the #I form
;;; at the Lisp prompt:
;;; > '#I(if x<y<=z then f(x)=x^^2+y^^2 else f(x)=x^^2-y^^2)
;;; (IF (AND (< X Y) (<= Y Z))
;;; (SETF (F X) (+ (EXPT X 2) (EXPT Y 2)))
;;; (SETF (F X) (- (EXPT X 2) (EXPT Y 2))))
Voilà, je crois que maxima, qui utilise la notation usuelle, a un mécanisme de ce genre.
-- Michel Talon