Postanowiłem nauczyć się (wspólnego) Lisp kilka dni temu i zdaję sobie sprawę, że jest to całkiem nowe pytanie i prawdopodobnie jest bardzo trywialne dla kogoś z przynajmniej odrobiną doświadczenia.Lisp: CHAR nie jest ani zadeklarowany, ani związany
Więc w zasadzie to, co się dzieje, że ja załadować Emacs + Slime (poprzez Lisp in a Box) i napisać program (podane poniżej):
(defun last-char (s) "Get last character"
(char s (- (length s) 1)))
A potem próbuję skompilować go z C - cM - k, ale potem pojawia się następujące ostrzeżenie:
CHAR jest ani deklarowany ani związana, będzie traktowana tak, jakby zostały uznane specjalnych.
Jakie jest znaczenie tego ostrzeżenia? Przypuszczam, że może to być coś podobnego do zapomnienia #include w C, ale nie mogę tego dokładnie rozgryźć. Co powinienem z tym zrobić? Czy mam to po prostu zignorować?
W pliku znajduje się słowo CHAR, które jest zmienną. Kompilujesz cały plik za pomocą c-c m-k. Sprawdź swój plik, co tam jest? Tylko powyżej funkcji? Wtedy nie zobaczymy błędu. –
Rainer Joswig: Dokładnie tak się stało. –
Generalnie używałbym C-c C-c do (re-) kompilacji tylko najwyższej klasy w punkcie. Jeśli wydarzy się coś dziwnego, ponownie zrób wcięcie całego pliku (C-M-q z całym plikiem jako regionem) i szukaj dziwnego formatowania. W twoim przypadku możesz zauważyć, że ciało funkcji jest dziwnie wcięte; jest to wskazówka, że wbrew przypuszczanemu założeniu nie jest to plik najwyższej jakości. – Svante