| Bevezetés | 11 |
| A Lisp nyelv | 11 |
| A funkcionális programozás | 11 |
| A mesterséges intelligencia kutatásáról | 12 |
| A Lisp történetének rövid áttekintése | 13 |
| A Lisp változatokról | 14 |
| Kiknek írtuk a könyvet? | 16 |
| A könyv felépítése | 16 |
| A Lisp nyelv elemei | 19 |
| Az atomok | 19 |
| A listák | 21 |
| A listák ábrázolása | 23 |
| Zárójelezési hibák | 27 |
| A lista részei | 30 |
| Az üres lista | 31 |
| Szimbolikus kifejezések, az értelmezőprogram | 32 |
| A függvények és a prefixjelölés | 36 |
| A beépített függvények | 37 |
| A prefixjelölés | 42 |
| Gyakori programozási hibák | 43 |
| Feladatok | 44 |
| A Lisp alapvető függvényei | 47 |
| Hogyan rendelhetünk értéket egy változóhoz? | 47 |
| A Quote és az Eval | 50 |
| A predikátumok | 56 |
| A logikai függvények | 59 |
| Az elemi predikátumok | 66 |
| A listák részekre bontása és felépítése | 70 |
| A Car és a Cdr függvényekből összetett függvények | 77 |
| Listák létrehozása. Az Append és a List | 82 |
| Feladatok | 85 |
| A függvénydefiníciók | 89 |
| Függvények definiálása | 89 |
| A kötött és a szabad változók | 93 |
| Néhány egyszerű függvény | 100 |
| A feltételes kifejezések | 102 |
| Az általánosított feltételes kifejezések | 106 |
| A rekurzív függvénydefiníciók | 108 |
| Függvények és algoritmusok | 119 |
| A leggyakrabban előforduló programozási hibák | 120 |
| Feladatok | 121 |
| További rekurzív függvénydefiníciók | 125 |
| Listákon értelmezett függvények | 125 |
| Listák legfelső szintjét kezelő függvények | 133 |
| A halmazkezelő függvények | 138 |
| A listák minden szintjét kezelő függvények | 143 |
| Általánosabb halmazkezelő függvények | 149 |
| Listákat rendező függvények | 156 |
| Feladatok | 160 |
| Tulajdonságlisták, lambdakifejezések, függvénytípusok | 163 |
| Szimbólumok tulajdonságai | 163 |
| A lambdakifejezések | 174 |
| A függvények típusai | 178 |
| Akárhány-argumentumú függvények definiálása | 180 |
| Nem eval-típusú függvények definiálása | 185 |
| Akárhány-argumentumú, nem eval-típusú függvények definiálása | 187 |
| A SelectQ függvény | 190 |
| Feladatok | 195 |
| Mélyebben a listákról és atomokról | 199 |
| A listák és atomok tárolása | 199 |
| A listák tárolása | 200 |
| Az atomok tárolása | 202 |
| A dobozos ábrázolás | 204 |
| A mutatókezelő függvények | 205 |
| A szelekciós függvények | 205 |
| A konstrukciós függvények. A Cons és a List | 208 |
| Az értékmutatót megváltoztató függvények | 209 |
| A listamásolatok és az értékadás. A Copy | 211 |
| Azonosságvizsgáló függvények: Az EQ és az Equal | 215 |
| Új szimbólumok létrehozása. A Gensym | 216 |
| Még egyszer a konstrukciós függvényekről. Az Append | 217 |
| A romboló függvények | 219 |
| A pontozott párok és a körkörös listák | 225 |
| A pontozott párok | 225 |
| A körkörös listák | 228 |
| A hulladékgyűjtés | 231 |
| Feladatok | 233 |
| A függvények mint argumentumok | 235 |
| A magasabbrendű függvények | 235 |
| Az Apply és a Function | 237 |
| Hogyan általánosíthatjuk a függvényeket? | 240 |
| Példák magasabbrendű függvényekre | 240 |
| Magasabbrendű logikai függvények. Az Every és a Some | 243 |
| A Map függvények | 244 |
| A Mapcar és a Mapc | 245 |
| A Maplist és a Map | 246 |
| A Map függvények harmadik argumentumáról | 248 |
| Egyéb Map függvények | 249 |
| A Map függvények és a tulajdonságlisták | 252 |
| Feladatok | 258 |
| A lokális értékek nyilvántartásáról | 261 |
| A lokális értékek könyvelése | 261 |
| A paraméterverem | 261 |
| Az asszociációs listák | 265 |
| A formák kiértékelésének környezete | 267 |
| A Function és a funarg-kifejezések | 270 |
| A kiértékelés félbeszakítása | 274 |
| A feltételes Break | 278 |
| Az Unbreak | 279 |
| Amikor nem a felhasználó akarja a szünetet... | 279 |
| Bepillantás a paraméterverembe | 280 |
| A nemrekurzív programozási eszközök | 283 |
| Egyszerű iteratív függvények | 283 |
| A Rpt függvény | 283 |
| A While függvény | 284 |
| Az Until függvény | 285 |
| A Do függvény | 286 |
| A Prog függvény | 290 |
| Feladatok | 293 |
| A bemeneti és a kimeneti függvények | 295 |
| A bemeneti és a kimeneti függvények | 295 |
| A füzérkezelő függvények | 296 |
| A füzérek és a szimbólumok | 298 |
| A füzérek és a listák | 299 |
| Az S-kifejezések olvasása és írása | 301 |
| Összetett feladatok | 310 |
| Adatállományok kezelése | 316 |
| Feladatok | 318 |
| Az értelmezőprogram és a fordítóprogram | 321 |
| Az értelmezőprogram | 321 |
| Olvasás - kiértékelés - kiírás | 321 |
| Az Eval függvény | 322 |
| Az Apply | 323 |
| A fordítóprogramról | 325 |
| Kidolgozott feladatok | 327 |
| A legrövidebb út megkeresése | 327 |
| Gráfok színezése | 331 |
| Algebrai kifejezések differenciálása | 340 |
| Szótárkezelő függvények | 345 |
| Mintaillesztés | 354 |
| Egy nyelvészeti alkalmazás: a megkülönböztető jegyek ábrázolása | 357 |
| Függelékek | 363 |
| A Lisp-dialektusok | 363 |
| Az Eval-quote változatok | 364 |
| A karakterkészlet | 365 |
| A beépített függvények | 365 |
| A forma első eleme | 366 |
| Az üres lista feje és farka | 366 |
| Az atomok feje és farka | 367 |
| A feltételes kifejezések | 367 |
| Függvények definiálása | 368 |
| A szabad változók értékének kezelése | 369 |
| Az iteratív eszközök | 370 |
| Hogyan ellenőrizzük a zárójelezés helyességét? | 370 |
| Összetartozó zárójelek megkeresése | 370 |
| A zárójelek számlázása | 373 |
| A nagyzárójel | 375 |
| Feladatmegoldások | 376 |
| Az 1. fejezet feladatainak megoldása | 376 |
| A 2. fejezet feladatainak megoldása | 380 |
| A 3. fejezet feladatainak megoldása | 384 |
| A 4. fejezet feladatainak megoldása | 386 |
| Az 5. fejezet feladatainak megoldása | 388 |
| A 6. fejezet feladatainak megoldása | 391 |
| A 7. fejezet feladatainak megoldása | 394 |
| A 8. fejezet feladatainak megoldása | |
| A 9. fejezet feladatainak megoldása | 398 |
| A 10. fejezet feladatainak megoldása | 399 |
| A könyvben szereplő hibaüzenetek | 403 |
| Kis angol - magyar szótár | 405 |
| Függvénymutató | 410 |
| Irodalomjegyzék | 421 |
| Tárgymutató | 425 |