2016-11-06 5 views
0

라켓/박사를 호출하면 다음 코드 라켓 : 내가 단위 테스트라는 rackunit에 대한 라이브러리를 사용하고있는 경우라켓의 절차에 단위 테스트 사용

#<procedure:add1> 

나는이 시도 :

> add1 

를 내가 얻을

(require rackunit) 

(check-equal? add1 #<procedure:add1>) 

시험은 실패를 구문 오류 :

read: bad syntax `#<' 

Wh 이 일이 생기나요?

답변

1

많은 유형의 데이터의 경우 what you write can be read back. 그러나 절차의 경우에는 할 수 없으므로 unreadable value으로 출력됩니다.

절차 평등은 불투명 한 구조 평등과 같습니다. 신원 만 확인합니다. 이 모든 것이 필요한 경우, 어딘가에 프로 시저를 저장하고 check-equal을 사용할 수 있습니까? (예를 들어, add1이있는 목록은 add1이있는 목록과 동일하게 비교됩니다). 실제로 프로 시저가 논리적으로 동일한 지 확인해야하는 경우 this is not possible in general.