Das Erhalten von variablem foo ist ungebunden, wenn Sie versuchen, ein schnelles Projekt-Tutorial zu verwenden
Frage
Ich habe die Anweisungen hier befolgt: http://xach.livejournal.com/278047.html und brachte sie zur Arbeit.Ich habe den Projekttest aufgerufen, daher habe ich eine test.lisp-Datei, die wie folgt aussieht:
;;;; test.lisp
(in-package #:test)
;;; "test" goes here. Hacks and glory await!
(defun foo ()
(format t "hello from EMAIL-DB package~%"))
Was mache ich falsch?Warum ist foo bei Verwendung ungebunden (ql: quickload "test")?
Hier ist meine Paketdatei:
;;;; package.lisp
(defpackage #:test
(:use #:hunchentoot))
Lösung
Ihr Testpaket verwendet das CL-Paket nicht, daher lautet Ihr DEFUN TEST :: DEFUN (nicht CL: DEFUN).Es gibt keine Makrodefinition für TEST :: DEFUN, daher fährt das System mit der Auswertung mit fort Funktionsaufrufregeln, die jedes Unterformular der Reihe nach auswerten sollen, wenden die Funktion dann auf die Werte der Argumente an.Das erste Unterformular ist TEST :: FOO, bei dem es sich um eine Suche nach einer Variablen handelt. In Ihrem Bild befindet sich keine Variable wie TEST :: FOO.