В последнее время я много читал о Обучение усилению , и я нашел "Обучение усилению: Введение" как превосходное руководство. Внимательно предоставленный автором исходный код для многих из их отработанных примеров.
Прежде чем я начну задавать вопрос, я должен отметить, что мои практические знания о lisp минимальны. Я знаю основные понятия и как это работает, но я никогда не использовал осмысленно lisp, так что, скорее всего, я просто делаю что-то невероятное. :)
Кроме того, автор заявляет на своей странице, что он не будет отвечать на вопросы о его коде, поэтому я не связывался с ним, и решил, что переполнение стека будет гораздо лучшим выбором.
Я пытался запустить код на Linux-машине, используя GNU CLISP и SBCL, но не смог его запустить. Я продолжаю получать полный список ошибок, используя любой интерпретатор. В частности, большая часть кода использует множество утилит, содержащихся в файле 'utilities.lisp', который содержит строки
(defpackage :rss-utilities
(:use :common-lisp :ccl)
(:nicknames :ut))
(in-package :ut)
Кажется, что: ccl ссылается на какую-то версию lisp для Mac, но я не могу этого подтвердить, это может быть просто какой-то другой пакет кода.
> * (load "utilities.lisp")
>
> debugger invoked on a
> SB-KERNEL:SIMPLE-PACKAGE-ERROR in
> thread #<THREAD "initial thread"
> RUNNING {100266AC51}>: The name
> "CCL" does not designate any package.
>
> Type HELP for debugger help, or
> (SB-EXT:QUIT) to exit from SBCL.
>
> restarts (invokable by number or by
> possibly-abbreviated name): 0:
> [ABORT] Exit debugger, returning to
> top level.
>
> (SB-INT:%FIND-PACKAGE-OR-LOSE "CCL")
Я попытался удалить этот конкретный кусок (изменив строку на
(:use :common-lisp)
но это только создало больше ошибок.
> ; in: LAMBDA NIL ; (+
> RSS-UTILITIES::*MENUBAR-BOTTOM* ;
> (/ (- RSS-UTILITIES::MAX-V
> RSS-UTILITIES::V-SIZE) 2)) ; ; caught
> WARNING: ; undefined variable:
> *MENUBAR-BOTTOM*
>
> ; (-
> RSS-UTILITIES::*SCREEN-HEIGHT*
> RSS-UTILITIES::*MENUBAR-BOTTOM*) ; ;
> caught WARNING: ; undefined
> variable: *SCREEN-HEIGHT*
>
> ; (IF RSS-UTILITIES::CONTAINER ;
> (RSS-UTILITIES::POINT-H ;
> (RSS-UTILITIES::VIEW-SIZE
> RSS-UTILITIES::CONTAINER)) ;
> RSS-UTILITIES::*SCREEN-WIDTH*) ; ;
> caught WARNING: ; undefined
> variable: *SCREEN-WIDTH*
>
> ; (RSS-UTILITIES::POINT-H
> (RSS-UTILITIES::VIEW-SIZE
> RSS-UTILITIES::VIEW)) ; ; caught
> STYLE-WARNING: ; undefined function:
> POINT-H
>
> ; (RSS-UTILITIES::POINT-V
> (RSS-UTILITIES::VIEW-SIZE
> RSS-UTILITIES::VIEW)) ; ; caught
> STYLE-WARNING: ; undefined function:
> POINT-V
Кто-нибудь знает, как я могу запустить этот код? Я просто совершенно не осведомлен обо всем, Лисп?
ОБНОВЛЕНИЕ [март 2009]: Я установил Clozure, но все еще не смог запустить код.
В командной строке CCL команда
(load "utilities.lisp")
приводит к следующему выводу ошибки:
;Compiler warnings :
; In CENTER-VIEW: Undeclared free variable *SCREEN-HEIGHT*
; In CENTER-VIEW: Undeclared free variable *SCREEN-WIDTH*
; In CENTER-VIEW: Undeclared free variable *MENUBAR-BOTTOM* (2 references)
> Error: Undefined function RANDOM-STATE called with arguments (64497 9) .
> While executing: CCL::READ-DISPATCH, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Retry applying RANDOM-STATE to (64497 9).
> Type :? for other options.
1 >
К сожалению, я все еще изучаю lisp, поэтому, хотя у меня есть ощущение, что что-то определено не полностью, я не совсем понимаю, как читать эти сообщения об ошибках.