ご存知のように、さまざまな Lisp システムがあります。Common Lisp の回答を投稿します。
単純な方法は を使用すること(load "filename.lisp")
ですが、しばらくするとうまく機能しません。したがって...
Common Lisp には、パッケージ化とファイル管理を処理する「ASDF」というライブラリがあります。ASDF のセットアップが少しあります。
- ASDF がファイルを探すディレクトリを作成します。
- この情報を私の Lisp システムの init ファイルに追加してください。
ファイルでこれを使用し.sbclrc
ます(〜で.asdfファイルを作成したと仮定します):
(pushnew "~/.asdf/" asdf:*central-registry* :test #'equal)
私は通常、以前にビルドした ASDF ファイルを使用してから、それを変更します。
サンプルの ASDF ファイルの内容は次のとおりです。
(asdf:defsystem #:cl-linq
:depends-on ( #:alexandria #:anaphora)
:components ((:file "cl-linq"))
:name "cl-linq"
:version "0.1"
:maintainer "Paul Nathan"
:author "Paul Nathan"
:licence "LLGPL"
:description "CL LINQ style interface with strains of SQL"
:long-description
"DSL for managing and querying datasets in a SQL/LINQ style
syntax. cl-linq provides a simple and usable set of primitives to
make data examination straightforward. ")
このコードをcl-linq.asd
ソース コード ( defsystemcl-linq.lisp
のコンポーネントから) の隣のファイルに配置し、そのファイルをディレクトリにシンボリック リンクします。"cl-linq"
cl-linq.asd
~/.asdf/
私の cl-linq.lisp ファイル内にこれを含めます:
(defpackage :cl-linq
(:use
:common-lisp
:anaphora)
(:export
#:query
#:cl-linq-select))
(in-package :cl-linq)
あなたの場合、2つのコンポーネントがあります。それぞれが独自の defpackage フォームを持ち、他のパッケージが必要とする関数をエクスポートします。
例として、私のプロジェクトであるCL-LINQからコードを引用しました。テンプレートとして自由にお使いいただけます。