컴퓨터 프로그램의 구조 및 해석에는 다음과 같은 각주가 있습니다 .
선택자와 생성자를 정의하는 또 다른 방법은
(define make-rat cons)
(define numer car)
(define denom cdr)
첫 번째 정의 는 쌍을 구성하는 기본 프로 시저 인
make-rat
표현식의 값과 이름 을 연관시킵니다cons
. 따라서make-rat
및cons
동일한 기본 생성자의 이름입니다.이러한 방식으로 선택자와 생성자를 정의하는 것은 효율적입니다. , is 를
make-rat
호출하는 대신 호출 될 때 두 개가 아닌 하나의 프로 시저 만 호출됩니다. 반면에 이렇게하면 프로 시저 호출을 추적하거나 프로 시저 호출에 중단 점을 설정하는 디버깅 도구가 무효화됩니다. 호출 되는 것을 지켜보고 싶을 수도 있지만 .에 대한 모든 호출을 감시하고 싶지는 않을 것 입니다.cons
make-rat
cons
make-rat
make-rat
cons
이 조언이 여전히 적용됩니까? 예를 들어, 최신 디버깅 도구는 여전히 이런 방식으로 패배하고 있습니까?
꽤 자주 그렇게 될 것입니다. 예를 들어 유용한 방법으로 역 추적을 인쇄하려는 디버거를 상상해보십시오. 역 추적에있는 프로 시저 객체와 이름 사이를 매핑하려고합니다. 그리고 그지도는 '잘못된'이름을 가리킬 것입니다. 아니면 모든 이름을 가리킬 것입니다. 그러면 실제로 어떤 이름을 사용했는지 알아야합니다.
다음은 Racket의 예입니다.
> (object-name cons)
'cons
> (define make-thingy cons)
> (object-name make-thingy)
'cons
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다