Table of
Contents (Table des
matières)
Ière PARTIE : Techniques de base
0 - Bibliographie
1 - Généralités
2 - Définitions de base, formes
LISP
3 - Mise en oeuvre pratique
(Prologue : rudiments)
4 - Évaluation / citation :
primitives
quote,
eval
5 - (Dé)construction de
listes
: primitives
car,
cdr,
cons
6 - Structure de listes et représentation interne :
arbres,
doublets,
paires pointées
7 - Premiers aperçus des
lambda-listes,
autres primitives de (dé)construction, comparaison et
modification de listes
7.1 - Déconstruction : list-length, length, last, butlast, nth
7.2 - Construction : list,
append, copy-list
7.3 - Prédicats d'identité : eq, eql,
equal
7.4 - Modification : reverse,
subst, substitute, remove
8 - Création de
fonctions
: primitive
defun et
lambda-listes, aperçu des
macro-fonctions, primitives
trace et
untrace
3bis - Mise en oeuvre pratique
(Epilogue : autres possibilités du top-level et primitives de sortie simples, print, etc.)
9 - Logique, conditions, contrôle
9.1 - Quelques autres prédicats
9.2 - Quelques opérateurs logiques
9.3 - Primitives if,
when, cond
10 - Primitives arithmétiques et mathématiques
11 - De la
récursivité,
par l'exemple
11.1 - Quelques cas
mathématiques simples
11.2 - Analyse et manipulation de listes, dont certaines
primitives LISP elles-mêmes
11.3 - Autres exemples
12 - Création dynamique de variables et de fonctions récursives
temporaires : primitives
let
et
labels, etc.
13 - Itérations explicites et quelques structures de contrôle :
primitives
mapcar,
apply,
prog1,
prog2,
progn,
do,
dotimes,
dolist,
prog,
catch et
throw,
lambda-expressions, notion
de
values
14 - Entrées/sorties, fichiers, interaction avec le système
d'exploitation : notions de
input/ouput-stream,
primitives
with-open-file,
read,
format,
excl:run-shell-command (UNIX), notions de
path,
package,
module, compilation, etc.
IIème PARTIE :
Techniques avancées
15 -
Modifications physiques
de listes : primitives
setf,
rplaca,
rplacd,
nsubstitute,
delete,
nconc,
pop,
push, listes circulaires
16 - Structures de données pré-définies et leurs primitives
16.1 - Gros plan sur un
symbole
16.1.1 - C-val : primitives de
création, d'accès et de modification
16.1.2 - P-listes
: primitives symbol-plist,
get, remprop, etc. ; esquisses
d'applications, mémo-fonctions
16.2 -
A-listes :
primitives
acons,
pairlis,
assoc,
rassoc ; fonction rplacval ;
esquisse d'application (
tables
de hachage)
16.3 -
Tableaux et
vecteurs, notion de
séquences : primitives
associées
16.4 -
Structures :
exemple d'application
17 - Des
macros, par
l'exemple
17.1 - Macro-fonctions : primitives defmacro, macroexpand, technique d'anti-quote
17.2 - Création de macro-caractères,
macro-caractères primitifs, la Read-Table, esquisses d'applications :
primitive set-macro-character
18 - Du
filtrage, ou
Pattern-Matching :
reconnaissance de formes
18.1 - Filtrage simple
18.2 - Filtrage élaboré : cf. Annexe C
19 -
Programmation objet
en
Common Lisp Object System
(CLOS)
19.1 - Principes, méthodes génériques en
CLOS, exemples simples : primitives defclass, defmethod, make-instance, etc.
19.2 - Exemple élaboré