Ho deciso di apprendere (Common) Lisp qualche giorno fa e mi rendo conto che questa è una domanda abbastanza newbie ed è probabilmente estremamente banale per qualcuno con almeno un po 'di esperienza.Lisp: CHAR non è dichiarato né vincolato
Quindi, in pratica quello che succede è che io carico fino Emacs + Slime (tramite Lisp in scatola) e scrivere il mio programma (riportato qui di seguito):
(defun last-char (s) "Get last character"
(char s (- (length s) 1)))
E poi provo a compilare con C - cM - k, ma poi ho il seguente avviso:
char è dichiarata né legato, sarà trattata come se fosse dichiarato SPECIALE.
Qual è il significato di questo avviso? Suppongo che potrebbe essere qualcosa di simile a dimenticare #inclusi in C, ma non riesco a capirlo. Cosa dovrei fare a riguardo? Devo semplicemente ignorarlo?
c'è una parola CHAR nel tuo file che è una variabile. Si compila l'intero file con c-c m-k. Controlla il tuo file, cosa c'è lì dentro? Solo sopra la funzione? Quindi non vedremo l'errore. –
Rainer Joswig: È esattamente quello che è successo. –
Generalmente utilizzerei C-c C-c per (ri) compilare solo la forma di livello superiore al punto. Se accade qualcosa di strano, ri-indentare l'intero file (C-M-q con l'intero file come regione) e cercare una formattazione strana. Nel tuo caso, potresti notare che il corpo della funzione è stranamente rientrato; questo è un suggerimento che, contro la tua supposizione presunta, non è una forma toplevel nel file. – Svante