Denis Lorrain


denislorrain.org:  Home Page > LISP Course

Programming in LISP (Common LISP): Course


Description

    This Course is taught in English and German at the Hochschule f¸r Musik (University of Music) of Karlsruhe (Baden-W¸rttemberg, Germany), mostly to Computer Music students . It introduces fundamental programming techniques in LISP (Common LISP, [Steele 1990]) and demonstrates interesting applications, from basic symbolic computation and manipulations to more sophisticated fields such as pattern matching and neural networks.
    The files available below are not independent tutorials. They are used as collected examples during the Course, surrounded by verbal introductions and comments, complementary informations, graphs, pictures, etc. Their musical and/or sound implications are thus not necessarily explicitly stated. They are however amply commented (in French, German and English) and can be of interest, independently from the Course, for a person already somewhat familiar with LISP.

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È


Annexes

A - Introduction ý OpenMusic (IRCAM)
B - Introduction ý CLCE-IV (GRAME)
C - Filtrage ÈlaborÈ, avec liaison d'ÈlÈments d'assertions ý des variables de filtres, calcul de contraintes et d'ÈlÈments de filtres : suite du Chapitre 18.1
D - RÈseaux neuronaux

Notes

Download

Bibliography

[Steele 1990]    Steele, Guy L. Jr., 1990: Common LISP: The Language, Second Edition, Bedford, Digital Press
[Weissman 1967]    Weissman, Clark, 1967: LISP 1.5 Primer, Belmont, Dickenson
[Wertz 1989]    Wertz, Harald, 1989: (Common) LISP : une introduction ý la programmation, Paris, Masson (Manuels informatiques Masson)
[Winston & Horn 1981]   Winston, P. H. & Horn, B. K. P., 1981: LISP, Reading, Addison-Wesley

TOP of page

denislorrain.org Home Page


Creative Commons License All texts and text files available on this site are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.