2014-05-21 3 views
1

방금 ​​읽었습니다 작은 계획자. 나는 어떤 말을 이해하는 데 약간의 문제가있다. 27 페이지가 말한다에작은 계획자 - 의미

,

식의 법칙?

프리미티브 두 개의 인수를 취합니다. 각각 은 숫자가 아닌 원자가되어야합니다.이어야합니다.는 "

그리고 각주는 말한다 : 실제로, 몇 가지 숫자 EQ의 인수를 할 수있다 나는 라켓 - 최소한의 내 계획 인터프리터로 사용하고

그것은 #t(eq? 10 10) 평가

?..

장난감과 관련된 많은 종류의 문제가 있습니다.


저자는 반드시 (굵은 글씨로 표시해야 함)와 각주를 의미합니까?

답변

2

데이터가 소스의 다른 시간/시점에서 소스에있는 경우에도 해당 데이터 유형을 만드는 포인터 자체에 낮은 정수 및 문자와 같은 일부 원시 데이터 유형을 포함시키는 것이 일반적입니다. 그러나 숫자는 어떤 크기이든 상관 없기 때문에 특정 구현 종속 크기까지의 숫자라도 포인터에 대해 커질 수 있습니다. (eq? 10000000000 10000000000)을 시도하면 32 비트 시스템에서는 #f이고 64 비트 시스템에서는 #t이고 (eqv? 10000000000 10000000000) 인 시스템은 #t 일 수 있습니다.

+0

약 cons. 두 번째 표현식이 목록이어야한다고 말합니다. 그러나 (car (cons 'a'b))는 'a. 설명해 주시겠습니까? – silentboy

+0

'cons'는 쌍을 만듭니다. 그것은'car'이고'cdr'은 어떤 타입이 될 수 있습니다 만,'cdr'이'null?'이거나'list?'일 때만 적절한리스트라고 부를 수 있습니다. 'list?'는 체인의'cdr'이'pair'이고 마지막이'null? '일 때입니다. 'cdr'에서'null? '로 끝나지 않는리스트는 점으로 구분 된리스트라고 불립니다. '(a. b. c)'. '(list? '(a b. c)); ==> # f' – Sylwester

+0

+1 알았습니다. TLS와 함께 가기 전에 읽을 수있는 체계에 대한 20 분의 개인 지도서를 찾았습니다. 감사합니다 – silentboy

1

스키마의 진정한 신원 조건자는 eqv?입니다. Eq?은 숫자, 문자 또는 프로 시저에 적용 할 때 #t 대신 #f을보고 할 수있는 최적화 된 버전입니다. eq?의 대부분의 구성표 구현은 정확한 정확한 숫자 ("fixnum"), 문자 및 프로 시저에 올바른 작업을 수행하지만 더 큰 숫자 나 다른 유형의 숫자로 떨어집니다.

"반드시"라고 말하면 eq?을 숫자에 적용하면 부분적으로 예측 가능한 결과 만 나타납니다. 각주는 어떤 경우에는 (보통 10 개를 포함 함) 의미를 지니고 있음을 의미합니다. 다양한 구성표가 픽스 번호와 함께 실제로 수행하는 작업에 대한 자세한 내용은 R7RS 개발 사이트의 FixnumInfo을 참조하십시오.