일부 (치킨) 스킴 코드를 정리 중이며 주어진 프로그램에서 사용되지 않은 모든 목록/프로 시저를 식별하려고합니다. 치킨 컴파일러 또는 csi -s
define
및 grep
-*.scm
스크립트의 식별자를 나열하지 않고 사용할 수있는 특정 옵션이 있습니까?구성표에서 사용되지 않는 목록/절차를 찾는 방법은 무엇입니까?
0
A
답변
0
repl 함수를 eval unit에서 사용할 수 있으며 인수에 eval을 호출하기 전에 목록 또는 람다 인 경우 심볼을 추적하는 평가 함수로 전달할 수 있습니다. 동적으로 표현을 정교하게 할 수 있기 때문에
0
사용되는 최상위 항목을 결정하는 것은 불가능하다 :
(eval (list (string->symbol "+") 1 2)) → 3
프로그램의 모든 가능한 순열을 평가하는 데 필요한 것입니다.
+0
그러나이 질문에 대해서는 이러한 접근법이 코드에서 사용되지 않았다고 가정합니다. –
0
코드를 모듈에 넣으면 코드를 컴파일 할 때 사용되지 않은 식별자가 없다는 경고가 표시됩니다 (표시하려면 csc -v
사용해야 할 수도 있음).
관련 문제
- 1. 사용되지 않는 maven 종속성을 찾는 방법은 무엇입니까?
- 2. 웹 앱에서 사용되지 않는 CSS 규칙을 찾는 방법은 무엇입니까?
- 3. PyCharm에서 클래스의 사용되지 않는 모든 메소드를 찾는 방법은 무엇입니까?
- 4. 네트워크에서 사용되지 않는 IP 주소를 찾는 방법은 무엇입니까?
- 5. AWS 계정에서 사용되지 않는 VPC를 찾는 방법
- 6. 사용되지 않는 오이 단계를 찾는 방법
- 7. 테이블에서 사용되지 않는 필드를 찾는 방법
- 8. SQL 서버에서 사용되지 않는 테이블을 찾는 방법
- 9. Ruby 코드에서 사용되지 않는 구문을 찾는 도구?
- 10. 10.8에서 사용되지 않는 FSFileOperationCreate를 대체하는 방법은 무엇입니까?
- 11. StandardStyles.xaml에서 사용되지 않는 스타일을 제거하는 방법은 무엇입니까?
- 12. 사용되지 않는 권한을 결정하는 방법은 무엇입니까?
- 13. jQuery에서 사용되지 않는 함수를 제거하는 방법은 무엇입니까?
- 14. Xamarin.Android에서 사용되지 않는 리소스를 검색하는 방법은 무엇입니까?
- 15. 프록시가 사용되지 않는 이유는 무엇입니까?
- 16. 사용되지 않는 라이브러리 클래스
- 17. 는 사용되지 않는 코드
- 18. MVC에서 사용되지 않는 뷰를 찾는 자동화 된 방법이 있습니까?
- 19. C에서 사용되지 않는 열거 형 멤버 찾기
- 20. 숫자를 찾으려면 구성표에서 중첩 목록을 통해 검색하십시오.
- 21. TableOutputForma가 사용되지 않는 이유는 무엇입니까?
- 22. org.hibernate.cache.Cache가 사용되지 않는 이유는 무엇입니까?
- 23. gcc - 사용되지 않는 속성은 무엇입니까?
- 24. 사용되지 않는 API com.google.gwt.user.client.Element
- 25. Guava에서 Files.deleteDirectoryContents()가 사용되지 않는 이유는 무엇입니까?
- 26. 실행되지 않는 함수를 찾는 방법은 무엇입니까?
- 27. 테스트에서 다루지 않는 지점을 찾는 방법은 무엇입니까?
- 28. 키워드와 일치하지 않는 결과를 찾는 방법은 무엇입니까?
- 29. ssl을 사용하지 않는 소스를 찾는 방법은 무엇입니까?
- 30. @ExceptionHandler가 작동하지 않는 이유를 찾는 방법은 무엇입니까?
아마도 이것은 repl에 대한 경험이 부족한 것이지만 어떻게 도움이되는지는 알 수 없습니다. –
그리 어렵지 않습니다. 모두 SICP의 4 장에 설명되어 있습니다. 이 평가자 구현 (https://github.com/jacktrades/Scheme-Meta-Circular-Evaluator)을 확인하십시오. meta-eval 람다에 코드를 추가하여 사용하는 기호를 추적하면됩니다. (extension-symbol-utils가 필요한 경우 멋진 인쇄를 위해 symbol-> keyword lambda를 사용할 수 있습니다). 파일 포트에 모든 심볼 이름을 덤프하면됩니다. 당신은 사용 된 목록이나 람다 (procedure? test)의 모든 이름으로 끝날 것입니다. meta-repl 내부에서 메인 프로그램을로드하는 것을 잊지 마십시오. – ramrunner