From 2982dbbb10c7b271933a614a710410628d85d62e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A9munaire?= Date: Tue, 7 Feb 2012 11:56:05 +0100 Subject: [PATCH] Cours du jour --- base.tex | 26 +++++++++++++++++++ foncprog/biblio.tex | 5 ++++ foncprog/intro.tex | 63 +++++++++++++++++++++++++++++++++++++++++++++ foncprog/main.tex | 8 ++++++ 4 files changed, 102 insertions(+) create mode 100644 base.tex create mode 100644 foncprog/biblio.tex create mode 100644 foncprog/intro.tex create mode 100644 foncprog/main.tex diff --git a/base.tex b/base.tex new file mode 100644 index 0000000..31f69de --- /dev/null +++ b/base.tex @@ -0,0 +1,26 @@ +\documentclass[10pt]{report} + +\usepackage[utf8x]{inputenc} +\usepackage[frenchb]{babel} +\usepackage{ucs} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{eurosym} +\usepackage{enumerate} +\usepackage{hyperref} +\usepackage{listings} +\usepackage{color} +\usepackage{array} + +\definecolor{dkgreen}{rgb}{0,0.6,0} +\definecolor{gray}{rgb}{0.5,0.5,0.5} +\definecolor{mauve}{rgb}{0.58,0,0.82} + +\lstset{language=C++,keywordstyle=\color{blue},stringstyle=\color{mauve}} + +\begin{document} + +\input{main} + +\end{document} diff --git a/foncprog/biblio.tex b/foncprog/biblio.tex new file mode 100644 index 0000000..116e27b --- /dev/null +++ b/foncprog/biblio.tex @@ -0,0 +1,5 @@ +\chapter{Bibliographie} + +Apprendre Scheme + +Le livre Practical Common Lisp (\url{http://www.gigamonkeys.com/book/}) diff --git a/foncprog/intro.tex b/foncprog/intro.tex new file mode 100644 index 0000000..23d24cd --- /dev/null +++ b/foncprog/intro.tex @@ -0,0 +1,63 @@ +\chapter{Introduction} + +\paragraph{Lisp~:} fanboy du lisp~! C'est sans doute l'un des langage qui +inclus le plus de paradigme possible~: homoiconicité (un autre exemple serait +Prolog). + +Tous les dialectes de lisp sont composés de 7 opérateurs. + +Dans les dialectes sympa, il y a Scheme qui est simple et minimaliste. +Common Lisp est un standard et possède même des bibliothèques standards. +Emacs Lisp est un mélange du Common Lisp et du Mac Lisp. + +Ruby est inspiré de Lisp. + +\section{Paradigme} + +Un \emph{paradigme} est une conception qui permet d'exprimer un certain nombre +de choses~: fonctionnel, impérative, procédural, \ldots + +Cela permet de faciliter l'écriture de certain concepts~: dans certain +paradigme, il est plus simple de faire certaines choses. Tout est possible +partout, plus ou moins simplement :p\\ + +Le paradigme affecte donc l'expressivité d'un langage, mais aussi la manière de +penser dans un langage. + +Généralement, un langage n'a pas de paradigme ferme. + +\section{1er ordre} + +Inventé par Christopher Strackey.\\ + +Un objet de première classe peut être stocké dans une variable, agrégé +(structure), passer en argument à une fonction, retourner d'une fonction, +manipuler de manière anonyme (utiliser un entier sans l'avoir assigné à une +variable) ou faire de la construction dynamique (un entier calculé à partir de +deux autres entiers).\\ + +Dans une langage fonctionnel, la fonction est un objet de première classe. + +\subsection{Lisp 1 vs 2} + +Common Lisp est un Lisp 2, Scheme un Lisp 1. Déréférence les espaces de noms. + +\subsection{Mapping et folding} + +\paragraph{Mapping} Consiste à appliquer une fonction sur tous les éléments +d'une fonction. + +\paragraph{Folding} Consiste à combiner 2 par 2 tous les éléments d'une liste +pour n'avoir plus qu'une valeur unique à la fin. + +\paragraph{Retour fonctionnel} Capacité à créer de nouvelles fonctions à la +volée. + +\section{Pureté} + +\section{Évaluation} + +\section{Typage} + +\section{Résumé} + diff --git a/foncprog/main.tex b/foncprog/main.tex new file mode 100644 index 0000000..ff9ac40 --- /dev/null +++ b/foncprog/main.tex @@ -0,0 +1,8 @@ +\title{Approche fonctionnelles de la programmation} +\author{Didier \textsc{Verna}} +\date{} + +\maketitle + +\input{intro.tex} +\input{biblio.tex}