LISP Trek Guida all’uso del linguaggio LISP in ambiente CAD Indice Prefazione .............................................................................. 11 Guida al linguaggio LISP 1. Concetti base ........................................................................ 15 1.1 La lista .................................................................... 15 1.1.1 Espressioni e programmi ........................................... 15 1.1.2 Variabili globali e locali ........................................ 18 1.2 Commenti e stile ............................................................ 23 1.2.1 Commenti .......................................................... 23 1.2.2 Stile ............................................................. 24 2. Le funzioni .......................................................................... 27 2.1 La nidificazione ............................................................ 27 2.1.1 La funzione Getvar ................................................ 28 2.1.2 La funzione Setvar ................................................ 28 2.1.3 La funzione Progn ................................................. 30 2.2 Le funzioni Get ............................................................. 30 2.2.1 La funzione Getpoint .............................................. 31 2.2.2 La funzione Getstring ............................................. 31 2.2.3 Le altre funzioni Get e la funzione Initget ....................... 32 2.3 Le funzioni stringa ......................................................... 32 2.3.1 La funzione Strcat ................................................ 33 2.3.2 La funzione Strlen ................................................ 33 2.3.3 La funzione Strcase ............................................... 33 2.3.4 La funzione Substr ................................................ 34 2.4 Le funzioni lista ........................................................... 34 2.4.1 Le funzioni List e Quote .......................................... 35 2.4.2 Le funzioni Car ................................................... 35 2.4.3 Le funzioni indice ................................................ 36 2.4.4 Altre funzioni lista .............................................. 36 2.5 Le funzioni matematiche ..................................................... 37 2.5.1 Uso combinato di Eval e Read ...................................... 40 2.5.2 La precisione nei calcoli ......................................... 42 2.5.3 Numeri complessi ed attrattori strani ............................. 43 2.5.4 Prodotto di numeri complessi ...................................... 50 3. Strutture di controllo ............................................................... 55 3.1 Le funzioni logiche ......................................................... 55 3.2 Le funzioni relazionali ..................................................... 55 3.3 Le funzioni decisionali If e Cond ........................................... 56 3.4 Le funzioni cicliche ........................................................ 57 3.4.1 La funzione Repeat ................................................ 58 3.4.2 La funzione While ................................................. 60 3.4.3 La funzione Foreach ............................................... 61 4. Argomenti avanzati ................................................................... 63 4.1 Accesso al database del disegno CAD ......................................... 63 4.2 Gli Xdata ................................................................... 65 4.2.1 Leggere e scrivere gli Xdata ...................................... 67 4.2.2 Tipi speciali ..................................................... 75 4.3 File ........................................................................ 80 4.4 Gestione degli errori ....................................................... 84 4.5 Programmare in DCL .......................................................... 85 Itinerari in LISP 5. Funzioni ricorsive ................................................................... 93 5.1 Per le strade di Manhattan .................................................. 97 5.2 La Torre di Hanoi ........................................................... 99 5.3 Permutazioni di n elementi .................................................. 100 5.4 Ricerca binaria in liste ordinate e non ordinate ............................ 110 5.5 Un Nuvolo temporalesco ...................................................... 114 5.6 Orbite, punti fissi e periodici ............................................. 116 5.7 Diagramma delle orbite ...................................................... 120 5.8 Attrattori strani nel piano ................................................. 124 5.9 Fibonacci e i tempi di cottura .............................................. 127 6. Numeri casuali ....................................................................... 129 7. Frattali ............................................................................. 139 7.1 Insiemi di Julia ............................................................ 140 7.1.1 Procedura ricorsiva ............................................... 141 7.1.2 Metodo dell’iterazione all’indietro ............................... 144 7.1.3 Metodo di scansione del contorno .................................. 147 7.2 Insieme di Mandelbrot ....................................................... 150 7.2.1 Procedura ricorsiva ............................................... 151 7.2.2 Metodo di scansione del contorno .................................. 153 7.3 Quaternioni ................................................................. 156 8. Figure di Lissajous .................................................................. 163 9. Liste-array .......................................................................... 187 9.1 Il tipo array ............................................................... 187 9.1.1 Liste-array ....................................................... 189 9.2 Operazioni su matrici ....................................................... 191 9.2.1 Somma degli elementi di una matrice ............................... 191 9.2.2 Somma tra matrici ................................................. 193 9.2.3 Prodotto di uno scalare per una matrice ........................... 196 9.2.4 Differenza tra matrici ............................................ 198 9.2.5 Prodotto tra due matrici .......................................... 200 9.3 Matrice Identica ............................................................ 203 9.4 Matrice Trasposta ........................................................... 204 9.5 Matrice Inversa ............................................................. 207 9.6 Eliminazione Gaussiana ...................................................... 215 9.7 Life ........................................................................ 225 10. Labirinti ........................................................................... 235 Note .................................................................................... 252 Bibliografia ............................................................................ 253