回答
Common Lisp開發環境通常提供了一種用源代碼查找文件中定義的方法。
另外,FUNCTION-LAMBDA-EXPRESSION
可能能夠恢復如果 Lisp的環境已經用於保存定義謂詞等功能的來源,。
您也可以在lisp文件中搜索開源lisp實現。例如,在Clozure CL setq
中定義了編譯器的/nx1.lisp文件的分佈。小費是在搜索詞的前面放置一個空格以繞過像(setq
這樣的匹配項。
謝謝!我不使用SLIME,但我會嘗試。 – lilawood 2011-05-09 18:08:17
這給謂詞的代碼來源,如setq,字符串比較等? – lilawood 2011-05-09 21:56:22
我使用MCLIDE lisp開發環境(與SLIME相同的後端)使用四種不同的Common Lisp實現進行了檢查:Clozure CL,SBCL,CLISP和MCL。既不能查找'SETQ'的定義(即使Clozure在compiler/nx1.lisp中有一個定義)。只有Clozure和MCL能夠找到'STRING ='的定義。核心功能可能會有更好的運氣。 – 2011-05-09 23:13:55
SETQ不是謂詞。它甚至不是一個函數,這就是爲什麼你無法通過IDE找到它的原因。 STRING =是一個謂詞和一個函數,所以效果更好。
你的意思是「原始?」爲「謂詞」?
我正在尋找函數的來源,如STRING =,CHAR = ...對於這個錯誤感到抱歉。 – lilawood 2011-05-10 16:31:01
對於至少SBCL,SLIME可以通過按「M-」查找定義,但是您需要從源編譯SBCL才能正常工作,因爲源定義的路徑嵌入在二進制文件中,如果你使用二進制發行版,你可能不會將源文件放在同一個位置。
- 1. Common Lisp a Lisp-n?
- 2. Common Lisp中
- 3. Common Lisp流?
- 4. Step Eval Common Lisp
- 5. 「unfold」for common lisp?
- 6. Common Lisp SublimeREPL
- 7. Common Lisp Binary Tree
- 8. Scheme或Common Lisp?
- 9. common lisp和emacs
- 10. Common Lisp Loop Trouble
- 11. 與Common Lisp中
- 12. Common Lisp Timer
- 13. Scheme vs Common Lisp
- 14. 關於Common Lisp中
- 15. asdf building和Common Lisp
- 16. Common Lisp弱引用?
- 17. 規則Common Lisp中
- 18. 如果Common Lisp中
- 19. 的#ifndef Common Lisp中
- 20. 使用的Common Lisp
- 21. 如何Common Lisp中
- 22. 替換Common Lisp中
- 23. (撰寫)在Common Lisp
- 24. 子列表Common Lisp中
- 25. 寫在文件的Common Lisp
- 26. Common Lisp內存問題
- 27. common lisp編程EQ錯誤
- 28. Common Lisp中的繪圖樹
- 29. Common Lisp類型說明符
- 30. Common Lisp - 配置slime和emacs
這通常是您正在使用的Lisp dev環境(如SLIME)的一項功能。您還必須安裝Lisp發行版的源代碼才能導航到它。 – 2011-05-09 08:38:37