クラスが定義されているパッケージを調べたいとします。 say(defclass x()())はp1で定義されています。 1つの方法は、パッケージを(symbol-package 'x)経由で入手することです。この解決策の問題は、xが別のパッケージp2にエクスポートされることです。その他の提案はありますか?lispでクラスのパッケージを見つけるには?
答えて
Rainer Joswig氏によると、クラスはパッケージに定義されていません。シンボルはパッケージを持ち、クラスの名前はシンボルです。
クラス定義の読み込み、コンパイル、ロード時に(おそらく3つの異なる値かもしれない)*PACKAGE*
の値を知りたければ、コードを書かないとそれを取得する方法はないと思いますその時にそれを保存する。
さらに、意味のある情報のようには見えません。パッケージは単なるシンボルの名前空間であり、クラス定義の読み込み、コンパイル、ロード時に現在のパッケージは、クラスそのものとは何の関係もないはずです。
しかし、クラスxの名前がパッケージp1に存在するが、p2がそれをエクスポートする場合は、defpackageフォームのshadowのリストにxを追加することができます。後)。
私はクラス図を構築し、スロット、メソッド、およびメソッドのスペシャライザをサブクラスとスーパークラスだけでなくクラスから抽出します。コンパイルされたパッケージに従ってクラスをグループ化すると良いでしょう。各クラスは、プロジェクトのパッケージ構造を反映するために開発者が選択した適切なパッケージ内のファイルで定義されていることが前提です。私はこれが必ずしも正しいとは限りませんが、依然として有用であることを理解しています。人々がコンパイルされたのとまったく同じファイルでクラス定義を変更すると仮定すると、その情報は意味を持ちます。 – user1222310
クラスの名前のパッケージは、プロジェクトの構造を反映していると思います。とにかくほとんど同じ時間帯になるでしょう。 –
ハッシュテーブルのように、 '* package *'の値をどこかに置くMOP関数 'ensure-class'にメソッドを定義することができます。パッケージを知りたいクラスをロードする前にこれを行う必要があります。 –
- 1. Emacs site-lispディレクトリを見つける
- 2. Common Lispライブラリを見つける
- 3. CMakeでSQLiteCppパッケージを見つける
- 4. fedoraでjavaパッケージとクラスを見つけて表示する方法は?
- 5. Laravel 5.5でパッケージを特別なディレクトリに見つけるには?
- 6. クラス/パッケージで未使用のメソッドを見つけるためのEclipseプラグイン
- 7. debianに相当するalpineパッケージを見つけるには?
- 8. Visual Studio Wp8.1でアプリケーションのパッケージ名を見つける方法は?
- 9. Jquery:クリックでクラスを見つける
- 10. JSONでクラスを見つける方法
- 11. GitHubでRパッケージを簡単に見つける
- 12. Groovyが欠けているパッケージを見つける:com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentialsパッケージが見つからない、Jenkins Job DSLプラグイン
- 13. 汎用オブジェクトのクラスを見つける
- 14. XPathでクラス "A"のすべてのクラス "B"を見つける
- 15. Pypiパッケージの最新の* compatible *バージョンを見つける方法は?
- 16. Pythonパッケージの2つのバージョンの新機能を見つける
- 17. MacでCPU集約型クラスを見つけるには?
- 18. ハッシュ・レールでモデル・クラスのクラスを見つける4
- 19. Postgres Linuxパッケージのドキュメントを見つける方法は?
- 20. パッケージのバージョン ""を見つけることができません
- 21. npmのapiでスコープされたパッケージを見つける
- 22. SQLジョブステップでSSISパッケージの接続を見つける方法
- 23. jQueryで既知のクラスの親を見つける方法は?
- 24. 私のパッケージを見つけるにはどうすればいいですか?
- 25. C++ソースコードでクラスのインスタンスを見つける方法は?
- 26. Selenium - Elementsクラス名を見つける
- 27. 動的クラス名を見つける人
- 28. setuptoolsはパッケージのバージョンをどこで見つけるのですか?
- 29. Common Lispのパッケージ定義
- 30. Common Lispの統計パッケージ
クラスは実際にパッケージで定義されていません。記号だけがあります。クラスの名前はシンボルですが、任意のシンボルにすることができます。このシンボルは、読み取り時にデフォルトのパッケージであったパッケージからのものである必要はありません。 –
あなたは答えとして投稿したいかもしれません。 – Inaimathi
私は、その問題がどのように病気になっているのか理解しています。どのようなパッケージ(defclass x ..)が出現したか(ロードされたかコンパイルされたか)を知るにはどうすればよいですか? – user1222310