2010-06-10 4 views
2

내 응용 프로그램은 사용자가 간접적으로 자신의 메소드를 작성할 수있게하고 이후에 이러한 메소드를 참조해야합니다. 메소드를 실행하려고 시도하지 않고 테스트 할 수있는 방법이 있는지 궁금합니다. 방금 시도하고 메서드를 호출하고 존재하지 않는 경우이 응용 프로그램이 중단됩니다.어쨌든 일반적인 lisp로 메소드를 "조사"할 수 있습니까

답변

7

또한 함수 FIND-방법을 참조하십시오. 방법을 구현하는 모든 GF에이 기능이 필요합니다. 또한 "아무 것도하지 않는"방법으로 감사 목적으로 일부 데이터 (각 인수의 클래스)를 기록 할 수도 있습니다.

4

정말 크래시는 발생하지 않지만 조건을 알립니다. 이 조건이 처리되지 않으면 디버거가 입력됩니다. 조건 시스템을 사용하는 방법에 대한 정보는 CLHS, Section 9.1을 참조하십시오.

어쨌든 fboundp을 사용하면됩니다. http://www.lispworks.com/documentation/HyperSpec/Body/f_find_m.htm#find-method

+0

감사합니다. 어쨌든 fboundp에 의해 반환 된 메소드를 해부하여 예상 호출자의 클래스가 무엇인지 판단 할 수 있습니까? – Mike2012

+0

'fboundp'는 해당 이름의 함수가 존재 하는지를 나타내는 일반화 된 부울을 반환합니다 (질문의 의도를 잘못 해석했을 수도 있음). "예상 호출자 클래스"는 부적합합니다. 나는 당신이이 방법에 대한 전문가를 의미한다고 생각합니다. 이에 대한 Rainer의 대답을 참조하십시오 ('find-method' 사용). – Svante

1

하나의 솔루션이 클래스 T (모든 클래스의 슈퍼 클래스)에 파견하는 "아무것도하지 않는"GF 방법을 제공하는 것입니다 :

관련 문제