2012-08-26 5 views
5

자바 스크립트에서, 나는 예를 들어, 함수의 "소스 코드"정의를 검색 할 수 있습니다MIT Scheme에서 함수 정의를 얻는 방법은 무엇입니까?

​function alert_Hi() { 
    alert("Hi"); 
} 

alert(alert_Hi); 

내가 입력 한 정확히 돌아갑니다. http://jsfiddle.net/DuCqJ/

어떻게하면 MIT Scheme에서이 작업을 수행 할 수 있습니까?

나는 #compound-procedure 또는 무엇인가를 반환하는 것을 기억하지만, 실제로 원하는 것은 "소스 코드"입니다.

답변

6

당신은 PP 시도 할 수

(define (display-hi) (display "Hi")) 
(pp display-hi) => 
(named-lambda (display-hi) 
    (display "Hi")) 

MIT-Scheme debugging aids

+1

일이 하나는 받아 들여진 대답이어야한다. –

4

JavaScript는 완전히 해석되므로 정의한 후에도 함수 정의가 주위에 있습니다. 스키마는 실제로 완전히 해석되지 않습니다. 그것은 함수 (그리고 다른 몇몇 구조, 나는 생각한다)를 읽을 수없는 표현으로 컴파일하고 초기 코드를 버린다.

아마도 매크로 트릭을 사용하여 런타임에 함수의 초기 텍스트 표현을 저장할 수는 있지만, 이것이 가치있는 것보다 더 많은 문제가 될 것이라고 생각합니다.

내가 궁금한 점이 있으면 런타임에 정의 된 함수의 텍스트 표현이 필요한 이유는 무엇입니까?

+0

내가 게으른 그리고 난'(디스플레이 myFunction 함수)을 말하는'대신 백업 편집기를 스크롤 할 때문에 : P –