私はLISPを初めて使っています。私はallegro-clを使用しています。私は定義して読み込んだ関数を呼び出すのが難しいです。特定のパッケージ内のすべてのメソッドの一覧表示や変数のリスト表示、パッケージ名のリスト表示など、私が定義したものをブラウズできる方法は何かを知りたいです。LISPの定義を参照してください
答えて
私はAllegroを使用していませんCLので、私はあなた自身がこれのために提供するツールについて話すことができます。この作業のためにAllegro CL IDEが提供しなければならないものを確認したいかもしれません。
LIST-ALL-PACKAGES機能を持つすべてのパッケージのリストを取得できます。あなたは自分の名前を印刷するには、このようにそれを使用することができます。
(dolist (p (list-all-packages)) (write-line (package-name p)))
CLパッケージは、シンボル(すなわち名前)ではなく、これらの名前に関連付けられているオブジェクトのコレクションです。そのシンボルに定義されている値や関数があるかどうかを調べるには、その中の名前をさらにクエリする必要があります。 DO-SYMBOLSを使用して、パッケージ内のすべてのシンボルをループすることができます。これは、現在のパッケージ内のすべてのシンボルを印刷します:
(do-symbols (s) (print s)
これだけの機能:
(do-symbols (s) (when (fboundp s) (print s)))
とその家のパッケージ現在のパッケージで、これが唯一の機能:
(do-symbols (s)
(when (and (eq (symbol-package s) *package*)
(fboundp s))
(print s)))
非常に助けていただきありがとうございます。関数の定義をどのように出力しますか? – harschware
これらの最後の2つは、現在のパッケージの関数に制限されていないようです。少なくとも、すべてのパッケージ(現在のスコープで呼び出すことができる)から定義された関数を見ることができます。 – harschware
関数の定義を印刷する標準的な方法はありません。あなたの実装がデバッグをサポートするためにそれを保存することは可能かもしれませんが、そうは思わないでしょう。しかし、入手可能なものは、ソースの場所です。 (SLIMEのswank-allergro.lispファイルが正しく理解されていれば、Allegroはそのための 'excl:find-source-file'関数を提供する必要があります –
名前の一部を覚えている場合は、常にAPROPOS(特定のパッケージに限定される場合があります)を使用してフルネームを見つけることができます。
同じ問題が発生しました。ドキュメンテーションを読んだ後、私はREPLに型定義された定義を思い出す方法がないという意見になった。
この問題を回避するために、私は常にエディタウィンドウ(Ctrl + Nがない場合は)に入力します。このようにして、定義を入力したり編集したりすることができます。定義を評価する必要がある場合は、増分評価のためにCtrl + Eを押します(ツールメニューの他のオプションを参照)。左にリスナーウィンドウ、右に入力と出力を表示するエディタウィンドウを保持します。
まだいくつかのバグを引き起こす可能性がある小さな問題があります。変更した後で定義を評価するのを忘れた場合、古いものはREPLに残ります。 Ctrl + Eキーを押し続けます。
複数のファイルが開いていて、ソースファイルの1つに定義を配置する場合は、[検索]> [Apropos]を使用できます。
- 1. を参照してください
- 2. 参照ページ(php)を参照してください
- 3. jquery - 特定の形式を参照してください
- 4. 定義されていないものは、javascript関数のプロトタイプを参照してください
- 5. 新しいレイヤーを定義して、ドッカー・キャフェのファイル・パスを参照してください
- 6. すでに定義されているマクロ変数を参照してください
- 7. Lisp Scheme -cannot参照未定義識別子エラー
- 8. のC#、XPathの(古いポストを参照してください)
- 9. ASCXファイルでコードのプロパティを定義し、それをASCXファイルで参照してください
- 10. RavenDbの値オブジェクトの親エンティティオブジェクトを参照してください
- 11. Sitecoreのアイテムの出版日を参照してください
- 12. Wordpressでのカテゴリの説明を参照してください。
- 13. asp.netウェブサイトのアプリケーションコード内のクラスライブラリを参照してください
- 14. リサイクラビューの別のビュータイプを参照してください
- 15. タイプのインスタンスの宣言を参照してください
- 16. Dreamweaverの要素のバウンディングボックスを参照してください
- 17. VisualTreeHelperのユーザーコントロール内のコントロールを参照してください
- 18. 他のCmdLetsをPowerShellのマニュアルで参照してください
- 19. このcodepenを参照してくださいChart.jsチャートのパディング
- 20. traceViewを使用し、android.view.ViewRoot.handleMessageを参照してください。76.4%
- 21. Silverlightのコントロールの既定のスタイルを参照してください
- 22. キーボードは次のテストを参照してください。
- 23. コードのスパークビューコンポーネントを参照してください
- 24. Ranorexリポジトリの要素をdinamically参照してください
- 25. Reactアプリケーションのbootstrap.min.jsを参照してください
- 26. Pythonの "Can not Assign to Literal"を参照してください。
- 27. RavenDBのRaw JSONをRunInMemoryで参照してください
- 28. React Native - デバイスのローカルストレージを参照してください。
- 29. コンストラクタの内部クラスを参照してください
- 30. コンストラクタ内の値を参照してください。
類似:http://stackoverflow.com/questions/1511981/how-to-examine-list-of-defined-functions-from-common-lisp-repl-prompt – harschware