Selon Yves Rutschle <[EMAIL PROTECTED]>: > On Wed, Aug 06, 2003 at 05:07:35PM +0200, Boulanger Jean-Louis wrote: > > Th�oriquement tu peux tr�s bien �crire un programme lisp sans jamais > utiliser > > ces op�rateurs. > > � ce compte l�, on peut dire que C (et Pascal et un tas > d'autres) sont �galement des langages fonctionnels, il > suffit d'avoir la notion de fonction et de r�cursivit� et de > ne pas utiliser l'affectation.
Non, car le mod�le d'ex�cution des langage imp�ratif (C, Pascal ..) est bas� sur l'ex�cution d'une s�rie d'instruction et sur la m�morisation au travers de l'affectation. Le mod�le fonctionnel est bas� sur la notion de fonction et meme si l'op�rateur set* existe cela ne signifie pas que l'on memorise a tour de bras des variables. Il existe de tres bon livre sur la programmation fonctionnelle. Il y a d'ailleurs un livre de B Meyer sur la s�mantique des langages qui est assez int�ressant sur le sujet. > Donc: on devrait parler de "programmation fonctionnelle" (en > tant que style de programmation) Il existe effectivement un style dit "Programmation fonctionnelle", on parle meme de "programmation applicative" (en incorporant les langages comme prolog). On s'interesse alors a d�crire le comportement du programme et non son principe d'ex�cution. Ce type de programmation existe en tant que telle car tu n'es pas oblige (comme pour la programmation oriente objet) de disposer d'un langage fonctionnel meme si tu seras oblig� de mettre en place des m�canismes compl�mentaires suivant le langage utilis�. > plut�t que de "langages > fonctionels" (en tant que propri�t� du langage), avec sans > doute des lagages qui ont plus d'histoire dans domaine que > dans l'autre. Non il existe bien des langages dit "langage fonctionnel" qui mettent en oeuvre un mod�le "fonctionnel" qui peut etre s�mantiquement d�finit et qui se base par exemple sur la notion de foncteur et de r�duction. On a un autre mod�le d'ex�cution. > > > D'ailleurs tu as de tr�s jolis > > exercice ou pour te passer de variable temporaire tu utilises des > param�tres > > compl�mentaires dans les fonctions qui sont donc une autre fa�on de > m�moriser > > des informations. > > Je me souviens avoir pass� des classes de prog � r�soudre > les probl�mes pos�s sans variables, pasque c'�tait trop > simple sinon... :-) Le remplissage de X sac avec n Objet de volume different est un classique qui se fait en quelque ligne fonctionnelle et qui peut aussi s'ecrire en imperatif mais de facon moins �vidente. Il y a une dimension complementaire. Comme les langages fonctionnels ont une s�mantique bien d�finie, il est possible de raisonner sur les programmes et on peut demontrer leurs validites Voir les travaux sur OCAML et sur COQ. Pour l'affectation, il y a une difficult� int�ressante, chacun utilise l'affectation sans se poser de question, mais l'affectation ne dispose pas d'un mod�le math�matique (sachant qu'il existe plusieurs implantations fonction du langage, du processeur, des principes de gestion m�moire et du syst�me d'exploitation). Boulanger JL ------------------------------------------------- Laboratoire Heudiasyc. UMR CNRS 6599 http://www.hds.utc.fr

