공통 리스프로 인트로 프로퍼티를 가정합니다. 함수 호출시와 실행 완료 시점을 알려주는 코드를 일반적인 lisp 코드에 어떻게 추가 할 수 있습니까? 임의의 lisp 코드와이 특정 수정을 코드에 적용하려고합니다. 나는 리스프의 AST 분석으로 이해할 수있다.Lisp 내성? 함수가 호출 될 때 그리고 종료 할 때
3
A
답변
6
은 당신이 (trace function)
를 사용할 수 있습니다
http://www.sbcl.org/manual/Function-Tracing.html
이 시스템은 또한 프로파일을 포함을 간단한 메커니즘. 좀 더 복잡한 것에 대해서는 comp.lang.lisp의 좋은 토론이 있습니다.
[CL_USER]>
(defun fac (n)
"Naïve factorial implementation"
(if (< 1 n)
(* n (fac (- n 1)))
1))
FAC
[CL_USER]> (trace fac)
;; Tracing function FAC.
(FAC)
[CL_USER]> (fac 5)
1. Trace: (FAC '5)
2. Trace: (FAC '4)
3. Trace: (FAC '3)
4. Trace: (FAC '2)
5. Trace: (FAC '1)
5. Trace: FAC ==> 1
4. Trace: FAC ==> 2
3. Trace: FAC ==> 6
2. Trace: FAC ==> 24
1. Trace: FAC ==> 120
120
[CL_USER]>
2
Common lisp에는 지정된 각 함수의 함수, 인수 및 결과 값을보고하는 TRACE 함수가 있습니다. 여기에 스틸 은행의 버전에 대한 문서의 페이지입니다,하지만 당신은 대부분의 구현에서 비슷한 찾아야한다 :
3
CLOS가 옵션 인 경우,이 후 다른 방법의 주위에, 이전에 실행 before, after, and around methods 있습니다.
관련 문제
- 1. 스크립트가 종료 될 때 함수 호출
- 2. 자바 스크립트 함수가 onSubmit과 함께 호출 될 때 작동하지 않습니다.
- 3. SQLiteOpenHelper, onCreate가 호출 될 때
- 4. Android 애플리케이션 서비스가 호출 될 때 강제 종료
- 5. 함수가 호출 될 때 파이썬 모듈 audiolab이 오류를 반환합니다.
- 6. 장치가 회전 할 때 onDestroy가 호출 될 때 스레드는 어떻게됩니까
- 7. textFieldShouldReturn이 호출 될 때 popViewController?
- 8. Quartz 스케줄러가 종료 될 때 작업을 수행해야합니다.
- 9. 응용 프로그램이 종료 될 때 감지하는 방법?
- 10. 윈도우가 최소화 될 때 블러 함수가 호출됩니다.
- 11. 앱이 종료 될 때 마지막으로 본 UIViewController로드하기
- 12. 프로세스가 종료 될 때 기능을 수행합니까?
- 13. 응용 프로그램이 종료 될 때 타이머가 실행됩니다.
- 14. GAE 인스턴스가 종료 될 때 알림이 표시됩니까?
- 15. 다른 프로세스가 종료 될 때 감지 OSX
- 16. setTimeout에서 호출 할 때 IE7 및 IE8에서 함수가 작동하지 않습니다.
- 17. 서비스가 종료 될 때 Windows가 서비스를 중지 할 때까지 기다리십시오.
- 18. 프로세스가 강제 종료 될 때 프로세스 종료 코드
- 19. 회전 할 때 UIPopOverController가 손실 될 때
- 20. 브라우저가 종료 될 때 쿠키가 손상 될 수 있습니다.
- 21. SelectedIndexChanged가 호출 될 때 Gridview가 비어 있습니다.
- 22. AS3_Release를 호출 할 때
- 23. 클라이언트 스레드를 구현하는 클래스를 호출 할 때 강제 종료
- 24. Dispose() 호출 할 때 객체가 스코프/메소드 종료 됨 vs
- 25. float가 호출 될 때 정수 전달
- 26. 컴퓨터를 종료 할 때 프로세스를 취소하는 방법?
- 27. 사용자가 종료 할 때 C# 함수를 실행하십시오.
- 28. 어쨌든 프로그램이 종료 될 때 C++에서 delete를 호출 할 이유가 있습니까?
- 29. 모델의 메소드가 호출 될 때 인식되지 않습니다.
- 30. python - wx.lib.pubsub.Publisher는 버튼을 눌렀을 때 호출 될 때 작동하지 않습니까?