Ich habe vor ein paar Tagen beschlossen, (Common) Lisp zu lernen, und mir ist klar, dass dies eine ziemlich neue Frage ist und es für jemanden mit ein bisschen Erfahrung wahrscheinlich extrem trivial ist.Lisp: CHAR ist weder deklariert noch gebunden
Also im Grunde, was passiert ist, dass ich Emacs + Slime laden (über Lisp in Box) und mein Programm schreiben (auch weiter unten):
(defun last-char (s) "Get last character"
(char s (- (length s) 1)))
Und dann versuche ich es mit C zu kompilieren - cM - k, aber dann bekomme ich die folgende Warnung:
CHAR weder deklariert noch gebunden, sie behandelt werden, als ob es SPECIAL deklariert wurden.
Was bedeutet diese Warnung? Ich nehme an, es könnte etwas sein, das dem Vergessen von # in C ähnelt, aber ich kann es nicht genau herausfinden. Was soll ich deswegen machen? Soll ich es einfach ignorieren?
gibt es einige Wort CHAR in Ihrer Datei, die eine Variable ist. Sie kompilieren die gesamte Datei mit c-c m-k. Überprüfe deine Datei, was ist da drin? Nur über Funktion? Dann werden wir den Fehler nicht sehen. –
Rainer Joswig: Genau das ist passiert. –
Ich würde normalerweise C-c C-c verwenden, um nur die Toplevel-Form am Punkt (neu) zu kompilieren. Wenn etwas Seltsames passiert, ziehe die gesamte Datei erneut ein (C-M-q mit der ganzen Datei als Region) und suche nach seltsamen Formatierungen. In Ihrem Fall bemerken Sie möglicherweise, dass der Funktionskörper merkwürdig eingerückt ist. Dies ist ein Hinweis darauf, dass es sich bei Ihrer angenommenen Annahme nicht um eine Toplevel-Form in der Datei handelt. – Svante