Cours du jour

This commit is contained in:
Némunaire 2012-02-07 11:56:05 +01:00
parent a3aba51336
commit 2982dbbb10
4 changed files with 102 additions and 0 deletions

26
base.tex Normal file
View File

@ -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}

5
foncprog/biblio.tex Normal file
View File

@ -0,0 +1,5 @@
\chapter{Bibliographie}
Apprendre Scheme
Le livre Practical Common Lisp (\url{http://www.gigamonkeys.com/book/})

63
foncprog/intro.tex Normal file
View File

@ -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é}

8
foncprog/main.tex Normal file
View File

@ -0,0 +1,8 @@
\title{Approche fonctionnelles de la programmation}
\author{Didier \textsc{Verna}}
\date{}
\maketitle
\input{intro.tex}
\input{biblio.tex}