我正在清理一些(雞)計劃代碼,我想確定在給定程序中沒有使用的所有列表/程序。是否有一個特定的選項可以傳遞給雞編譯器或csi -s
我可以使用這樣做,而不用列出每個define
和grep
-ing的*.scm
腳本中的標識符?如何在計劃中找到未使用的列表/程序?
0
A
回答
0
您可以使用eval unit的repl函數並傳遞給一個評估函數,該函數在調用參數的eval之前跟蹤該符號(如果它是列表或lambda)。
0
不可能決定哪些頂級條目將被使用,因爲它可以動態手藝表達式:
(eval (list (string->symbol "+") 1 2)) → 3
,有必要評估程序的所有可能的排列。
+0
但是,對於這個問題,假設代碼中沒有使用這種方法。 –
0
如果您將代碼放入模塊中,編譯時會顯示關於未使用的未導出標識符的警告(您可能需要使用csc -v
來顯示它們)。
相關問題
- 1. 如何在計劃中找到列表的中位數
- 2. 計劃中的程序列表
- 3. 如何在ajax應用程序中找到未使用的css?
- 4. 如何在計劃中的位置列表中找到最小posn-x
- 5. 使用任務計劃程序找不到文件
- 6. 如何在ASP.NET中使用Windows任務計劃程序
- 7. .net - 「在指定的程序集列表中未找到類My.CSharp.Class」。
- 8. 誰計劃回到在ASP.NET 4.0中使用Web應用程序?
- 9. 計劃 - 在列表
- 10. 在計劃中添加列表的迭代程序
- 11. 如何在應用程序中找到未序列化的對象
- 12. 如何在計劃中應用列表中的匿名函數?
- 13. 計劃中的程序哈希表
- 14. 在列表中插入列表計劃
- 15. 使用計時器隊列的計劃程序
- 16. 查找計劃程序Spark的延遲
- 17. 如何在計劃中添加到嵌入式列表?
- 18. 如何在計劃中將Mulitpule計算的值分配到列表中
- 19. 計劃 - 列表
- 20. 我在這個計劃程序中找不到我的錯誤來計算PI
- 21. Primefaces計劃未在應用程序中顯示
- 22. 文件未找到錯誤使用計劃任務
- 23. 計劃程序
- 24. 使用任務計劃程序的計劃任務託管打包程序
- 25. 未在servlet登錄應用程序中找到列的execption
- 26. 如何設置android的計劃程序
- 27. 如何在計劃中使用foldr?
- 28. 如何在計劃中使用「cond」?
- 29. 找出應用程序是否已計劃使用CeRunAppAtTime運行
- 30. Iphone URL計劃:回到應用程序
也許這只是我缺乏repl的經驗,但我不明白這會有什麼幫助。 –
這並不難。全部在SICP的第4章中解釋。看看這個評估器的實現(https://github.com/jacktrades/Scheme-Meta-Circular-Evaluator)。你所要做的就是在meta-eval lambda中添加一些代碼,以跟蹤它使用的符號。 (如果您需要擴展符號實用程序,則可以使用符號 - >關鍵字lambda來進行良好的打印)。只需將所有符號名稱轉儲到文件端口即可。你將最終得到所有使用的列表或lambda表達式(過程?測試)的名稱。不要忘記從meta-repl中加載主程序。 – ramrunner