Common LISP

Robert Wilensky

Common LISP

Edizione a stampa

78,00

Pagine: 544

ISBN: 9788820424619

Edizione: 1a edizione 1988

Codice editore: 725.15

Disponibilità: Fuori catalogo

La più completa introduzione al Common LISP, utilissima per gli studenti e i principianti e indispensabile per i professionisti. Attraverso una sessione interattiva con l'interprete, vengono presentati al lettore gli elementi del linguaggio Common LISP e illustrati i concetti che sovraintendono allo stile di programmazione.

Il volume contiene:

- una completa documentazione di tutte le funzioni, i simboli e i caratteri del Common LISP

- osservazioni sullo standard ben evidenziate nel testo che mettono in rilievo le caratteristiche del linguaggio, non specificate nella definizione del Common LISP, o che dipendono dalla documentazione o che possono essere differenti a seconda del particolare dialetto LISP

- una presentazione dettagliata delle caratteristiche particolari del Common LISP, incluse la restituzione di valori multipli, le strutture, i package, e i tipi di dati del Common LISP

- una chiara esposizione dei concetti più importanti del Common LISP, come l'ambiente, le forme speciali, i collegamenti tra le variabili, e il passaggio degli argomenti

- un trattamento esteso della ricorsione, più una completa discussione sull'I/O, sul debugger, sulle funzioni di sistema, e sulla compilazione

- esempi dei diversi stili di programmazione, con commenti sugli stili belli e brutti

- due esempi applicativi nel capitolo finale di programmazione su larga scala

- appendici che riassumono le funzioni e i caratteri speciali del Common LISP

- una scheda di riferimento per l'uso sul terminale.

Robert Wilensky, professore di computer science presso l'Università della California a Berkely, ha conseguito il suo dottorato all'Università di Yale. Attualmente è direttore del Berkeley Artificial lntelligence Research Project ed ha collaborato a molte pubblicazioni sulla logica e i linguaggi naturali.

Prefazione
1. Il linguaggio LISP
2. Conunon LISP
3. Scopo del libro
4. Presentazione Ringraziamenti
1. Inizio
1. Introduzione
2. L'interprete LISP
3. Valutazione
3.1. Valutazione di s-expression più complesse
4. Gli argomenti delle funzioni
5. I simboli
6. Terminare con il LISP
7. Riassunto
8. Esercizi
2. Computazione simbolica
1. Introduzione
2. Ancora sulle liste
3. Prendiamo le cose letteralmente
4. Le funzioni car e cdr
5. Le funzioni cadr...
6. La lista vuota
7. La funzione cona
8. Funzioni per la costruzione di liste
9. Riassunto
10. Esercizi
3. Derinizione di funzioni personali
1. Introduzione
2. Funzioni definite dall'utente
3. Gestione dei parametri formali
4. Libera occorrenza, variabili speciali e variabili globali
4.1. Simboli liberi e simboli legati
4.2. Variabili globali
4.3. Ambiente
4.4. Variabili speciali
5. Come salvare funzioni in file
6. Riassunto
7. Esercizi
8. Un'osservazione sulla terminologia
4. Predicati, condizioni, operatori logici
1. Introduzione
2. Predicati LISP
3. Condizioni
3.1. cond più complesse
3.2. La forma generale di cond
3.3. Altri tipi di condizionali
4. Operatori logici
4.1. L'uso di and e or per controllare il flusso
5. Riassunto
6. Esercizi
5. Iterazione in LISP
1. Introduzione - Dalla ricorsione alla iterazione
2. Iterazione strutturata
2.1. Altre funzioni iterative strutturate
3. La funzione prog
3.1. Forma generale della funzione prog
4. Altre forme iterative
5. Riassunto
6. Esercizi
6. La ricorsione
1. Introduzione
2. Le basi della ricorsione
3. Alcuni esempi di ricorsione
4. La ricorsione e i parametri
5. Un errore ricorsivo comune
6. Esempi più complessi di ricorsione
7. Osservazioni sulla programmazione
8. Il percorso della ricorsione
9. Iterazione a confronto della ricorsione
10. Riassunto
11. Esercizi
7. Liste di proprietà
1. Introduzione
2. Le basi
3. Un esempio
4. Il significato delle liste di proprietà
5. La lista di proprietà e l'univocità dei simboli
6. Lista di proprietà senza simbolo
7. Riassunto
8. Esercizi
8. Il controllo della valutazione e dell'applicazione delle funzioni
1. Introduzione
2. Le funzioni come argomenti
3. Le funzioni appiy e funcali
3.1. li problema "FUNARG"
4. La funzione eval
4.1. Problemi di contesto con eval
5. Funzioni di mappatura
5.1. Altre funzioni di mappatura
5.2. Il trucco delle funzioni appiy e append
6. Riassunto
7. Esercizi
9. Lambda
1. Introduzione
2. Funzioni senza nome
3. symbol-function e struttura interna del LISP
4. Alcuni altri esempi
5. La funzione function
6. Usare LAMBDA per creare nuove variabili
7. Il significato di LAMBDA
8. Riassunto
10. Esercizi
10. Leggere e scrivere
1. Introduzione
2. Le funzioni read e print
3. Leggere e scrivere simboli con nomi non usuali
4. Stringhe
5. Ridirigere l'I/O
5.1. Recupero della condizione di fine file
5.2. Nomi con percorso
6. Stampare in un bel formato
7. La funzione format
8. Altre funzioni di I/O
8.1. Le possibilità di read e print
8.2. Creare una trascrizione della sessione con l'interprete
9. Il LISP in LISP
9.1. Il livello principale evalquote
9.2. Cicli read-ovai-print
10. Riassunto
11. Esercizi
11. Correggere
1. Correggere in LISP
2. Il debugger in Common LISP
2.1. Esanúnare lo stack
2.2. Altri comandi del debugger
2.3. Entrata ricorsiva nel debugger
3. Il programma trace del Common LISP
4. Lo stepper del Common LISP
5. Riassunto
6. Esercizi
12. Come scrivere funzioni più flessibili
1. Introduzione
2. Argomenti facoltativi
3. Il parametro rest
4. I parametri keyword
4.1. Ancora sulle parole chiave
4.2. Interazione tra parametri di parole chiave e parametri resto
4.3. Tern-dnologia
5. Variabili ausiliarie
6. Chiusure
6.1. Chiusura di un insieme di funzioni
7. Funzioni compilate e funzioni estranee
8. Riassunto
9. Esercizi
13. Macro
1. Introduzione
2. Come usare le macro per scrivere un codice più leggibile
3. Definizione delle macro
4. Espansione della macro
5. Alcuni esempi di macro
6. Tecniche di scrittura di una macro
7. Caratteristiche avanzate della funzione defmacro
7.1. Destrutturazione
8 .Funzioni speciali e macro
9. Modi d'uso della macro
10. Macro e stile di programmazione
11. Implementazione della macro
12. Riassunto
13. Esercizi
14. Caratteri macro
1. Introduzione
2. Eseguire funzioni durante read
3. Come definire caratteri macro
4. Caratteri macro che non restituiscono valore
5. Il carattere macro apice contrario
5.1. Come usare l'apice contrario nelle definizioni delle macro
6. Il carattere macro di rinvio
7. Alcune altre cose aggiuntive sui caratteri
8. Riassunto
9. Esercizi
15. Rappresentazione della lista
1. Introduzione
2. Rappresentazione interna di liste
3. La notazione della coppia puntata
4. Puntatori multipli allo stesso oggetto
4.1. Le funzioni eq ed eql
5. Il pericolo di rpiaca e rpiacd
6. Riassunto
7. Esercizi
16. Flusso di controllo non standard
1 .Introduzione
2. Blocchi
3 .Le funzioni catch e throw
4. Valori multipli
4.1. Funzioni per ricevere valori multipli
4.2. Funzioni per generare valori multipli
4.3. Passare più di un valore
5. Riassunto
6. Esercizi
17. Package
1. Riconsiderazioni su read
2. Percorrere i nomi dei simboli
3. Rappresentazione di simboli
4. Package
5. Creazione di simboli e funzioni di aggiornamento del package
5.1. Generare nuovi simboli
5.2. Generazione automatica di nomi
5.3. Eliminazione di simboli da un package
6. Manipolazione del package
6.1. Struttura del package
6.2. Package standard del Common LISP
6.3. Moduli
7. Riassunto
8. Esercizi
18. Tipi di dati
1. Introduzione
2. Tipi di dati del Common LISP
3. I tipi di dati standard del Common LISP
3.1. Combinazioni e specializzazioni dei tipi di dati
4. Array
5. Vettori
6. Stringhe
7. Sequenze
8. Tabelle hash
9. Strutture
10. Riassunto
11. Esercizi
19. Funzioni di sistema
1. Introduzione
2. Funzioni interne LISP di sistema
2.1. Funzioni sul tempo e sullo spazio
2.2. Funzioni per la descrizione degli oggetti
3. Funzioni di sistema esterne al LISP
3.1. Funzioni sul sistema dei file
3.2. Funzioni statiche sull'ambiente
3.3. Altre funzioni di sistema
4. Riassunto
20. Compilazione
1. Introduzione alla compilazione del LISP
2. Come usare il compilatore del Common LISP
3. La funzione evai-when
3.1. Sintassi di #, e #.
4. Dichiarazioni
4.1. La funzione deciare
4.2. Dichiarazioni locali
4.3. Dichiarazioni globali
4.4. Tipi di dichiarazioni
4.5. Dichiarazioni di tipo
4.5.1. Specificatori di tipo più complessi
4.5.2. Definizione di nuovi simboli specificatori di tipo
4.5.3. Dichiarazione del tipo di funzione
4.5.4. Dichiarazione del tipo di valore di una forma
4.6. Altri specificatori di dichiarazione
4.6. 1. Codice aperto
4.6.2. Ignorare le variabili
4.6.3. Ottimizzazione
4.6.4. Variabili speciali
5. Riassunto
6. Esercizi
21. Applicazioni LISP: ricerca secondo u