생성자와 선택자를 cons, car 및 cdr로 정의하는 것이 여전히 바람직하지 않습니까?

J. Mini

컴퓨터 프로그램의 구조 및 해석에는 다음과 같은 각주가 있습니다 .

선택자와 생성자를 정의하는 또 다른 방법은

(define make-rat cons)
(define numer car)
(define denom cdr)

첫 번째 정의 는 쌍을 구성하는 기본 프로 시저 인 make-rat표현식의 값과 이름 연관시킵니다 cons. 따라서 make-ratcons동일한 기본 생성자의 이름입니다.

이러한 방식으로 선택자와 생성자를 정의하는 것은 효율적입니다. , ismake-rat 호출하는 대신 호출 될 때 두 개가 아닌 하나의 프로 시저 만 호출됩니다. 반면에 이렇게하면 프로 시저 호출을 추적하거나 프로 시저 호출에 중단 점을 설정하는 디버깅 도구가 무효화됩니다. 호출 되는 것을 지켜보고 싶을 수도 있지만 .에 대한 모든 호출을 감시하고 싶지는 않을 것 입니다.consmake-rat consmake-ratmake-ratcons

이 조언이 여전히 적용됩니까? 예를 들어, 최신 디버깅 도구는 여전히 이런 방식으로 패배하고 있습니까?

tfb

꽤 자주 그렇게 될 것입니다. 예를 들어 유용한 방법으로 역 추적을 인쇄하려는 디버거를 상상해보십시오. 역 추적에있는 프로 시저 객체와 이름 사이를 매핑하려고합니다. 그리고 그지도는 '잘못된'이름을 가리킬 것입니다. 아니면 모든 이름을 가리킬 것입니다. 그러면 실제로 어떤 이름을 사용했는지 알아야합니다.

다음은 Racket의 예입니다.

> (object-name cons)
'cons
> (define make-thingy cons)
> (object-name make-thingy)
'cons

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

임의로 생성 된 영숫자 문자열을 DynamoDB에서 기본 파티션 키 및 정렬 키로 설정하는 것이 안전합니다.

분류에서Dev

"= default"로 복사 생성자를 선언하거나 전혀 선언하지 않는 것의 차이점은 무엇입니까?

분류에서Dev

람다로 단점, 자동차 및 CDR 정의-어떻게 작동합니까?

분류에서Dev

올바른 CSS 선택자를 사용하여 사이트에서 정보를 얻으려고하는데 요소가 존재하지 않는 것처럼 여전히 나를 반환합니다.

분류에서Dev

유형의 생성자와 병렬로 별도의 스레드에서 멤버 함수를 실행하는 것이 정의되지 않은 동작입니까?

분류에서Dev

dplyr 0.8.3이 지연 연산자 및 그룹화 된 데이터를 사용하여 여전히 NA를 생성하는 이유는 무엇입니까?

분류에서Dev

네이티브 자바 스크립트를 사용하여 HTML 및 SCRIPT 태그와 해당 데이터 속성을 선택 하시겠습니까?

분류에서Dev

상자를 선택한 후에도 잘못된 사용자 지정 메시지에 대한 입력이 여전히 유효하지 않습니다.

분류에서Dev

생성자를 동적으로 선택하는 Javascript가 올바르지 않습니까?

분류에서Dev

하나의 생산자와 여러 소비자와 함께 Queue를 사용하는 것이 안전합니까?

분류에서Dev

C #에서 자동으로 선택 및 선택되지 않은 라디오 버튼 및 타이머를 구현하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 객체 : 프로토 타입을 재정의하는 것이 좋지 않습니까?

분류에서Dev

Django 선택 가능 및 자동 완성 : 자동 완성이 작동하지 않습니다. 내 자신의 JS를 추가해야합니까?

분류에서Dev

계획 / LISP에서 자동차 및 CDR로 전화를 나열하십시오.

분류에서Dev

사용자 정의 Javascript 및 CSS가 Wordpress에 추가되었지만 여전히 작동하지 않습니다.

분류에서Dev

셀 식별자와 함께 정적 문자열을 사용하는 것이 바람직합니까?

분류에서Dev

이것을 사용하여 위임 된 요소의 선택자를 참조 할 수 있습니까?

분류에서Dev

Windows 방화벽 및 라우터를 통해 허용 된 앱이 여전히 작동하지 않습니까?

분류에서Dev

mozc를 사용하여 일본어를 입력 할 때 마지막으로 선택한 키보드 레이아웃을 사용하여 로마자를 입력합니다. 사용하는 것을 수정할 수 있습니까?

분류에서Dev

mozc를 사용하여 일본어를 입력 할 때 마지막으로 선택한 키보드 레이아웃을 사용하여 로마자를 입력합니다. 사용하는 것을 수정할 수 있습니까?

분류에서Dev

rand를 사용하여 uuid를 생성하는 것이 안전하지 않습니까?

분류에서Dev

선택기 스레드가 아닌 다른 스레드에서 SelectionKey의 InterestOps를 설정하는 것이 안전합니까? (자바 Nio)

분류에서Dev

custom.conf를 편집 한 후에도 자동 로그인이 여전히 작동하지 않습니다.

분류에서Dev

사용자가 로그인하지 않은 경우에도 속성 승인이 여전히 성공한 것으로 전달됨

분류에서Dev

자식 구성 요소에 Props를 로깅하면 업데이트 된 값이 제공되지만 부모에 정의 된 상태 자체는 여전히 업데이트되지 않습니다.

분류에서Dev

최대로 응집력있는 클래스를 만드는 것이 바람직하지 않거나 만들 수없는 이유는 무엇입니까?

분류에서Dev

SVG 요소의 너비와 높이를 100 %로 설정하여 얻을 수있는 것이 있습니까?

분류에서Dev

Durandal 생성자 함수이지만 여전히 데이터를 기억하고 싶습니다.

분류에서Dev

마시멜로 및 6.0까지의 선택 사진 선택 설정 팝업을 선택하여 전면 카메라를 기본으로 여는 방법

Related 관련 기사

  1. 1

    임의로 생성 된 영숫자 문자열을 DynamoDB에서 기본 파티션 키 및 정렬 키로 설정하는 것이 안전합니다.

  2. 2

    "= default"로 복사 생성자를 선언하거나 전혀 선언하지 않는 것의 차이점은 무엇입니까?

  3. 3

    람다로 단점, 자동차 및 CDR 정의-어떻게 작동합니까?

  4. 4

    올바른 CSS 선택자를 사용하여 사이트에서 정보를 얻으려고하는데 요소가 존재하지 않는 것처럼 여전히 나를 반환합니다.

  5. 5

    유형의 생성자와 병렬로 별도의 스레드에서 멤버 함수를 실행하는 것이 정의되지 않은 동작입니까?

  6. 6

    dplyr 0.8.3이 지연 연산자 및 그룹화 된 데이터를 사용하여 여전히 NA를 생성하는 이유는 무엇입니까?

  7. 7

    네이티브 자바 스크립트를 사용하여 HTML 및 SCRIPT 태그와 해당 데이터 속성을 선택 하시겠습니까?

  8. 8

    상자를 선택한 후에도 잘못된 사용자 지정 메시지에 대한 입력이 여전히 유효하지 않습니다.

  9. 9

    생성자를 동적으로 선택하는 Javascript가 올바르지 않습니까?

  10. 10

    하나의 생산자와 여러 소비자와 함께 Queue를 사용하는 것이 안전합니까?

  11. 11

    C #에서 자동으로 선택 및 선택되지 않은 라디오 버튼 및 타이머를 구현하는 방법은 무엇입니까?

  12. 12

    자바 스크립트 객체 : 프로토 타입을 재정의하는 것이 좋지 않습니까?

  13. 13

    Django 선택 가능 및 자동 완성 : 자동 완성이 작동하지 않습니다. 내 자신의 JS를 추가해야합니까?

  14. 14

    계획 / LISP에서 자동차 및 CDR로 전화를 나열하십시오.

  15. 15

    사용자 정의 Javascript 및 CSS가 Wordpress에 추가되었지만 여전히 작동하지 않습니다.

  16. 16

    셀 식별자와 함께 정적 문자열을 사용하는 것이 바람직합니까?

  17. 17

    이것을 사용하여 위임 된 요소의 선택자를 참조 할 수 있습니까?

  18. 18

    Windows 방화벽 및 라우터를 통해 허용 된 앱이 여전히 작동하지 않습니까?

  19. 19

    mozc를 사용하여 일본어를 입력 할 때 마지막으로 선택한 키보드 레이아웃을 사용하여 로마자를 입력합니다. 사용하는 것을 수정할 수 있습니까?

  20. 20

    mozc를 사용하여 일본어를 입력 할 때 마지막으로 선택한 키보드 레이아웃을 사용하여 로마자를 입력합니다. 사용하는 것을 수정할 수 있습니까?

  21. 21

    rand를 사용하여 uuid를 생성하는 것이 안전하지 않습니까?

  22. 22

    선택기 스레드가 아닌 다른 스레드에서 SelectionKey의 InterestOps를 설정하는 것이 안전합니까? (자바 Nio)

  23. 23

    custom.conf를 편집 한 후에도 자동 로그인이 여전히 작동하지 않습니다.

  24. 24

    사용자가 로그인하지 않은 경우에도 속성 승인이 여전히 성공한 것으로 전달됨

  25. 25

    자식 구성 요소에 Props를 로깅하면 업데이트 된 값이 제공되지만 부모에 정의 된 상태 자체는 여전히 업데이트되지 않습니다.

  26. 26

    최대로 응집력있는 클래스를 만드는 것이 바람직하지 않거나 만들 수없는 이유는 무엇입니까?

  27. 27

    SVG 요소의 너비와 높이를 100 %로 설정하여 얻을 수있는 것이 있습니까?

  28. 28

    Durandal 생성자 함수이지만 여전히 데이터를 기억하고 싶습니다.

  29. 29

    마시멜로 및 6.0까지의 선택 사진 선택 설정 팝업을 선택하여 전면 카메라를 기본으로 여는 방법

뜨겁다태그

보관