[Comm] Запуск LISP-программ

JCU Librarian =?iso-8859-1?q?collector_=CE=C1_jedi=2Eorg=2Eua?=
Вс Май 18 17:54:47 MSD 2003


On Sun, May 18, 2003 at 09:34:25PM +0800, Pavel Stupin wrote:
> Спасибо что откликнулись! ... 
> Кстати, вы с этой программой тоже работали?

Нет, я пишу на лиспе, но Ideal'ом ни разу не пользовался. Вот
сейчас его вытащил, посмотрел -- оказывается это довольно старый
пакет, его нужно адаптировать.

> 
> В общем, поставил sbcl --- теперь при
> "sbcl --load load-ideal.lisp" получаю:
> 
> _____________________________________________________________
> debugger invoked on condition of type SB-KERNEL:SIMPLE-PACKAGE-ERROR:
> The name :USER does not designate any package.
> ...
> restarts:
>   0: [CONTINUE] Continue anyway (skipping to toplevel read/eval/print
> loop).
>   1: [QUIT    ] Quit SBCL (calling #'QUIT, killing the process).
> (SB-INT:%FIND-PACKAGE-OR-LOSE 1 :USER)[:EXTERNAL]
> 0] SB-EXT:QUIT
> _____________________________________________________________
> 
> То есть у меня, видимо, нет этого пакета USER? В начале запускаемого
> файла есть такие строки:

Тут проблема в том, что в стандарте не указано как должно
называться просторанство имен пользователя. У кого-то это USER, у
кого-то -- CL-USER... Насколько я успел посмотреть код, он
запускался под коммерческими Allegro CL & Lucid Works. Он и
сейчас под ними запустится, и даже с графикой (полных свободных
реализаций CLIM не существует :( ), но они стоят дорогих денег.

Пока что очевидно что нужно заменить определения

(in-package :user)

на 

(in-package :cl-user)

а там уже дополировывать.


> _____________________________________________________________
> ;;; -*- Mode: LISP; Syntax: Common-lisp; Package: USER -*-
> (in-package :user)
> _____________________________________________________________
> 
> Его нужно как-то отдельно доустанавливать?

Нет, в данном случае это namespace в который загружаются новые
определения.


> И когда пытаюсь запустить какие-то функции Ideal, которые описаны в
> мануале, то получаю "undefined function" и "undefined variable" (видимо,
> потому что нет USER?). 

Это потому что они не загрузились с самого начала...


> Кстати, как нужно правильно запускать функции в LISP?
> В таком виде?: (function_name variable_name)

Ага. Лисп весь такой. Если появится желание изучить этот язык --
пишите, я подскажу где взять литературу.

Sincerely,

--Victor



Подробная информация о списке рассылки community