Как создать и использовать библиотеку с lisp (clisp)?

В C / C ++ я могу сделать библиотеку и сделать ее статической или dll, используя #include "" в исходном коде и -labc при компоновке. Как мне использовать такую ​​же функцию в lisp?

В качестве примера util.lisp в каталоге A. Я определяю библиотечную функцию hello.

(defpackage "UTIL"
  (:use "COMMON-LISP")
  (:nicknames "UT")
  (:export "HELLO"))

(in-package util)
(defun hello ()
  (format t "hello, world"))

И попробуйте использовать эту библиотечную функцию из основной функции.

(defun main ()
  (ut:hello))
(main)

Я пробовал

clisp main.lisp A/util.lisp 

Но я получил следующее сообщение

*** - READ from #: there is no package with name "UT"
  • Что эквивалентно #include "" для использования библиотеки?
  • Что эквивалентно -lutil для загрузки библиотеки? В какой командной строке clisp / sbcl используется библиотека?
  • А для defpackage это эквивалентно пространству имен?

ДОБАВЛЕНО

Мне просто нужно было загрузить библиотеку.

(load "./A/util.lisp")

(defun main ()
  (ut:hello))

(main)

И запустить clisp main.lisp нормально работает.

9
задан prosseek 29 September 2010 в 13:11
поделиться