March 12
Si può crescere ed estendere la potenza del linguaggio di programmazione Lisp attraverso l'uso di macro. macro Lisp applicano un nome a una combinazione di parti esistenti del linguaggio Lisp, librerie Lisp o funzioni che si scrive per creare una nuova caratteristica del linguaggio che valuterà come qualsiasi altro componente linguaggio Lisp. Le macro sono una forma di stenografia --- quando si valuta una macro, l'interprete si espande la macro nel codice che incapsula, poi esegue il codice. Un esempio di una macro Lisp è possibile creare un programma di utilità di conversione di temperatura Fahrenheit a Celsius. Questo esempio mostra come una macro può combinare un'altra macro e una funzione Lisp.
1 Avviare il terminale di linea di comando facendo clic sul pulsante "Start" e cliccando sul menu "Esegui". Tipo "comando" nella casella di input, quindi fare clic su "OK".
2 Avviare l'interprete Common Lisp digitando "CLISP" al prompt dei comandi. Premere il tasto "Enter".
3 Digitare il codice per la prima parte della domanda al prompt dei comandi Lisp. La vostra nuova macro consiste in un altro chiamato Rapporto macro. Il comando defmacro crea la macro, che contiene la pendenza del terreno di Celsius rispetto a Fahrenheit.
(Rapporto defmacro () (/ 5.0 9.0))
4 Inserisci il codice per la seconda parte della macro al prompt dei comandi Lisp. La funzione "diff" sottrae 32 dalla temperatura in gradi Fahrenheit.
(Defun diff (x) (- 32,0 x))
5 Inserisci il codice per la parte finale della macro al prompt dei comandi Lisp. La macro "fc" accetta la temperatura in gradi Fahrenheit, lo moltiplica per il rapporto, lo moltiplica per "diff", quindi stampa il risultato.
(Fc defmacro (x) (* (rapporto) (diff x)))
6 Testare la macro digitando "(fc 98,6)" al prompt dei comandi Lisp. L'interprete deve stampare 37.0, che è 98,6 o temperatura corporea in gradi Celsius.