一般的な Lisp では、名前が付けられたもの (変数、関数、マクロ) はすべてシンボルに関連付けられます。この場合、シンボル にアタッチされた関数がありますmake-pqueue
。シンボルは、パッケージを使用して互いに分離されています。これにより、衝突が最小限に抑えられ、パッケージによってエクスポートされない内部変数/関数なども許可されます。
次の 3 つのいずれかを行う必要があるようです。
- 関数の前にパッケージ名を使用してください:
(priority-queue:make-pqueue #'<)
. この方法は、ソースを読んでいる人に実行中のコードを正確に知らせたい場合に適しています。ただし、パッケージを何度も呼び出すと煩雑になる可能性があります。
現在のパッケージでパッケージを使用しpriority-queue
ます。
(use-package :priority-queue)
(make-pqueue #'<)
これが行うことは、エクスポートされたすべてのシンボルをpriority-queue
パッケージから現在のパッケージにインポートすることです (ほとんどの場合cl-user
)。これはテストには適していますが、通常は独自のパッケージを作成します。次の項目を参照してください。
priority-queue を使用する独自のパッケージを定義します。
(defpackage :queue-test (:use :cl :priority-queue))
(in-package :queue-test)
(make-pqueue #'<)
独自のパッケージを定義することは、最初は大変な作業のように思えますが、特にコードのさまざまな部分を統合し始めると、得られる分離が好きになるでしょう。