Programmation Fonctionnelle en L1 (Printemps 2012)
Voir Programmation fonctionnelle
The spirit of Lisp hacking can be expressed in two sentences :
Programming should be fun.
Programs should be beautiful.
[Paul Graham]
Le langage utilisé dans ce cours est Scheme [avec le logiciel gratuit Racket]. Il fonctionne à l'identique sous Linux, MacOS-X et Windows. Pour installer chez soi la dernière version, consulter la rubrique Install Scheme (qui contient une vidéo illustrant l'installation et les réglages) ainsi que le document teackpack.pdf pour les réglages. La distribution contient une volumineuse doc en anglais, mais comme avec Java, nous n'en étudierons qu'une très petite portion, grosso modo les chapitres 1, 2, 3, 4, 5, 6, 8, 9, et 10.2 de mon livre PCPS paru en 2010 :
Un cours en amphi de 1h30 le lundi + deux séances sur ordinateur de 1h30 chaque semaine, durant 12 semaines. Voici un document sur l'usage d'un Mac au cas où vous travailleriez en salles 312-313......
• Racket 5.2.1 vient de sortir ! Installez-le sur vos machines personnelles. |
• Le
livre de cours PCPS
existe pour que vous puissiez aller plus vite et efficacement dans votre apprentissage du langage Scheme et de la
programmation en général. Tous ses exercices sont corrigés sur ma page Web. |
Une option Programmation Fonctionnelle 2 [PF2, alias PSA = Programmation Scheme Avancée] sera ouverte au semestre suivant. Elle est destinée aux futurs programmeurs, aux futurs ingénieurs, et à tous les scientifiques souhaitant ajouter une coloration informatique à leurs études. Ceci concerne par exemple l'option D (Informatique) à l'agrégation de Maths, puisque cette discipline devient une spécialité de Terminale S à partir de la rentrée 2012 ! L'option PF2 abordera [en vrai Scheme] la programmation impérative, les macros, les classes d'objets à la Java, les interfaces graphiques, la programmation du Web, et bien d'autres choses plaisantes, intellectuelles et agréables...
Les langages de programmation ne devraient pas être conçus en empilant des tonnes de choses, mais en supprimant les faiblesses et les restrictions qui rendent toutes ces choses indispensables. Scheme démontre qu'un très petit nombre de règles pour former les expressions, sans aucune restriction sur la manière dont elles sont composées, suffit à former un langage de programmation pratique et efficace, qui soit suffisamment flexible pour accepter la plupart des paradigmes majeurs de programmation utilisés de nos jours. [R6RS] |

